`

编码转换会丢失信息吗

阅读更多

 

    编码转换会丢失信息吗?

    这是个命题,根据目前的研究结果,答案是肯定的,就是会丢失,理由如下:

String m = URLEncoder.encode("聶","iso-8859-1");

System.out.println(m);
		
String g = URLDecoder.decode(m,"gbk");
		
System.out.println(g);

 经过编码转换后,1字节的信息丢失了,所以不可能再还原了

 

 

而又说Eclipse里显示编码转换,信息不会丢失,是因为它没有编码过程,只有解码过程,随便怎么转换,都不会丢失,它的应用场景也只是去寻找一种合适的解码形式,原始的编码是不变的

 

String mk = URLEncoder.encode("聶","gbk");

String i = URLDecoder.decode(mk,"iso-8859-1");
		
System.out.println("i = " + i);
		
String ik = URLDecoder.decode(mk,"gbk");
		
System.out.println("ik = " + ik);

 

 

2010.06.08 补充添加:

Garbled summary


In the Java run-time of the world, garbled generation (both compile-time generated here) exist in two places at source, in fact, that is what I have mentioned two functions (of course, sometimes the framework of which helped us a call a function, so you get is already uploaded by the network over a byte array converted to String a),

  • getBytes (String charset) if according to a specified charset to encode a unicode String, but found that the coding system, where (for example, iso-8859-1) do not have this character, it will be encoded into the 3F (actually a question mark), so that has caused the loss of information, and can not be restored.
  • new String (byte [] bytes, String charset) if a byte array according to a specified character set to decode the character set, but suddenly some of them do not know when the encoding, for example, a certain period of a byte array according to UTF-8 decoding time, do not know, and to a unicode string side is the "\ uFFFD", in fact this thing called 'REPLACEMENT CHARACTER', shows a question mark

    Therefore, we encounter the following situations are often garbled

         1. A kind of encoded files to another way to parse code to read,

             this would certainly garbled,  this  is where we open a file when

             the operating systemfrequently.
         2. The wrong way transmission over the encoding of the byte stream decoding.

             So, get the wrong unicode string.
         3. And console inconsistent encoding of unicode strings correctly coded,

             and sent to the console  display. Will be garbled.

 

from:

http://www.codeweblog.com/java-depth-analysis-of-the-character-encoding/

 

 

分享到:
评论

相关推荐

    编码转换/解决易语言不能显示字符(包括emoji)

     本源码实现了将易语言不能显示的字符转换成USC2编码,这样您可以输出到编辑框\列表框\存到数据库等等.技术顾问: Jβ。例如: 。 这段hex数据:F0 9F 98 B1 E5 93 88 E5 93 88 F0 9F 98 B1 F0 9F 98 B1(UTF8编码)。...

    字符编码的奥秘详解 字符编码的奥秘详解

    对于字符编码的认识与理解、防止与解决乱码问题 ,编码问题是信息处理的基本问题,但是由于历史和政治的问题,事实上存在着大量不统一的编码方式,造成在信息处理过程中的信息丢失,转换错误等问题,UCS 为问题的...

    编码方式的一种 曼切斯特编码

    曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。在这个技术下,实际上的二进制数据被传输通过这个电缆,...

    adb push不支持中文乱码的解决方案

    而在Android中采用的UTF-8编码,所有使用adb 的push和pull命令时就会导致由于编码方式的不同而产生的错误,解决这一问题就只有对adb工具的源代码进行修改,让adb对文件名的编码进行相应的转换 3.附件中的adb 重新...

    php版mysql大数据库备份和恢复工具

    4.虽然程序目前支持GBK、BIG5、UTF8之间的编码转换,但这种转换不是安全的.首先你的目标导入服务器要支持iconv,即在导入时如果"编码转换功能"提示为支持,则可以使用此功能.反之则不可以.其次,转换时的数据必须是"干净...

    信息技术考编整理.doc

    断电后,RAM信息全部丢失,RAM分为静态RAM和动态RAM两种。 ROM工作时其内容只能读出不能写入,断电后,ROM存储单元中的内容依然保存。ROM 一般存储计算机系统中固定的程序和数据,常见的有机器的自检程序、初始化...

    RMI:这是NeurIPS 2019论文用于语义分割的区域互信息丢失的代码

    然后,对于图像中的每个像素,我们获得一个多维点,该多维点对像素之间的关系进行编码,然后将图像转换为这些高维点的多维分布。 因此,预测和地面真理可以通过最大化多维分布之间的互信息(MI)来实现高阶一致性。...

    二进制格雷码与自然二进制码的互换

    在精确定位控制系统中,为了提高控制精度,...电源切断后位置信息不会丢失,但分辨率是由二进制的位数决定的,根据不同的精度要求,可以选择不同的分辨率即位数。目前有10位、11位、12位、13位、14位或更高位等多种。

    testlinkconvert2

    (注意:双击TestlinkConvert.java启动工具,转换的时候会出现编码错误) 文件介绍: 4. 从testlink中导出测试套件或测试用例(xml文件),使用上述工具将xml文件转换成格式合适的excel文件; 5. 按照指定格式在...

    cuetools.net:CD图像处理套件,带有经过优化的C#无损编码器

    许多应用程序在转换时会丢失重要信息,并且不支持所有可能的CUE工作表样式。 例如,foobar2000在转换专辑图像时会丢失光盘的预间隙信息,并且不支持附加的间隙(不兼容)CUE表。 支持的格式 支持WAV,FLAC,APE,...

    计算机基础简答题答案.doc

    这种编码输入的优点是无重码 , 而且输入码和内码的转换比较 方便, 但每个汉字的编码都是一串等长的数字 , 很难记忆 拼音码是以汉语读音为基础的 , 由于汉字同音字太多 , 输入重码率很高 , 因此按拼音输入后 还必须...

    信息技术及计算机应用基础知识(2017年).pdf

    计算机断电或重新启动后, 中的信息丢失。 A.CD-ROM B.RAM C.光盘 D.硬盘 3.计算机内部指令的编码形式都是 编码。 A.二进制 B.八进制 C. 十进制 D. 十六进制 4.十进制数 57 转换成二进制数是 。 A.111001B B.100111B...

    i-Sound WMA MP3 Recorder Pro

    i-Sound WMA MP3 Recorder Pro 是一个...您可以下载汉化的 Monkey's Audio 3.97 来取得在 APE 及其他格式之间转换的编码支持,比如您想将 APE 文件无损地还原为 WAV 文件或是将 APE 文件转换为 OGG、MP3 等格式那样。

    计算机基础知识(2).doc

    接口是位于外存或I/O设备与微机总线之间,提供信息转换和缓冲功能,使技术性能差 别很大的多种外部设备都能很方便地接到总线上。 48. 49. 当软盘驱动器正在读写软盘上的信息时,不可以从驱动器中取出软盘。 50. 同...

    CMP4播放器 456Vv后台系统个人版 20100619

    4,支持迅雷、快车、URL编码 地址转换 5,支持代理下载 6,支持URL参数,如:start={start_bytes} start={start_seconds} 20100401更新 1, 出现生成歌词的BUG 2010330更新 1,纠正外连变动字段功能。 2,纠正...

    rumoji:将表情符号unicode字符编码和解码为表情符号备忘单形式

    根据您的技术堆栈,这些字符可能最终会丢失。用法Rumoji.encode(str)# Takes a String, transforms Emoji into cheat-sheet codesRumoji.encode(str) { |emoji| #your code here }# Takes a String, transforms ...

    pixel2style2pixel:“样式编码”的官方实现

    我们提出了一个通用的图像到图像转换框架Pixel2Style2Pixel(pSp)。 我们的pSp框架基于一个新颖的编码器网络,该网络直接生成一系列样式向量,这些向量被馈送到预先训练的StyleGAN生成器中,从而形成扩展的W +潜在...

    录音软件i-SoundPro

    取得在 APE 及其他格式之间转换的编码支持,比如您想将 APE 文件无损地还原为 WAV 文件或是将 APE 文件转换为 OGG、MP3 等格式那样。  i-Sound WMA MP3 Recorder Pro 还具有按计划任务定时录音,声音激活录音,编辑...

    stdx:丢失的锈铁电池

    stdx生锈的电池丢失 Rust的新手,还不知道要使用什么板条箱? 。 当前修订版: stdx 0.119.0-rc,适用于Rust 1.19,2017年7月20日。 特征 箱 位域 字节顺序转换 日期和时间 命令行参数解析 编码/解码 ...

Global site tag (gtag.js) - Google Analytics