`

编码转换会丢失信息吗

阅读更多

 

    编码转换会丢失信息吗?

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

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/

 

 

分享到:
评论

相关推荐

    超级批量编码转换 1.0

    在实际使用中,用户需要注意的是,不是所有的编码转换都是可逆的,有些编码转换可能会丢失部分信息,因此在进行大规模转换前,最好先备份重要文件。同时,了解目标系统或软件支持的编码格式也非常重要,避免转换后的...

    超级批量编码转换工具

    当需要将这些GBK编码的文件上传或共享时,可能会出现乱码问题,此时就需要进行编码转换。《超级批量编码转换工具》就是为此目的而设计的,它可以一次性处理多个文件,将它们从GBK编码转换成UTF-8,确保文件在不同...

    文件编码转换工具

    了解并掌握如何正确使用文件编码转换工具,可以避免因编码问题导致的数据丢失或显示异常,确保信息的准确性和一致性。在实际工作中,无论是开发人员还是普通用户,都应该对文件编码有基本的认识,以便在需要时能够...

    文件编码转换器

    3. **编码转换需求**:当文件在不同系统或软件间交换时,可能会遇到编码不兼容的问题,如GBK编码的文件在只支持UTF-8的系统中打开会出现乱码。因此,需要通过编码转换工具进行转换,确保文件内容正确显示。 4. **...

    万能的文件编码转换工具。

    本软件“万能的文件编码转换工具”专为此问题提供解决方案,它支持多种编码格式,使得用户能够轻松应对各种编码不兼容的情况。 首先,我们需要理解什么是文件编码。文件编码是指将字符转化为二进制数据的规则,常见...

    新编码转换大全.rar

    在进行编码转换时,需谨慎操作,因为错误的转换可能导致字符丢失或乱码。 "新编码转换大全"这个压缩包可能包含以下内容: 1. 编码转换工具:可能是可执行程序,用于在命令行或图形界面下转换文件的编码。 2. 文档...

    工具-字符编码转换

    在IT领域,字符编码转换是一项基础且重要的任务,特别是在处理多语言或跨平台的数据时。本文将基于“工具-字符编码转换”的主题,深入探讨字符编码的概念、常见编码格式、字符编码转换工具以及如何进行实际操作。 ...

    Unicode编码转换源码

    Unicode编码转换源码主要关注如何在不同的编码格式之间进行转换,如从普通字符到Unicode,以及从Unicode到UTF-8编码。 首先,我们来了解一下Unicode。Unicode是一个包含世界上几乎所有的文字、符号和标点的字符集,...

    批量文本编码转换

    在IT领域,文本编码转换是一项基础但至关重要的任务,尤其对于处理不同来源或格式的数据时。批量文本编码转换是指能够一次性处理大量文本文件,将它们从一种字符编码格式转换为另一种,以确保数据的正确显示和处理。...

    ASCII码及UCS2编码转换器,包含中文编解码

    需要注意的是,在处理中文字符时,如果ASCII字符串中含有非ASCII字符,转换到UCS2时可能会丢失信息,因为ASCII不支持中文字符。反之,如果UCS2字符串中有超出ASCII范围的字符,转换到ASCII时这些字符将被替换为问号...

    网页编码转换工具GB2312转换UTF-8

    在实际应用中,编码转换可能会遇到的问题包括字符丢失、乱码显示以及编码识别错误等。因此,使用这样的专业工具时,需要注意以下几点: 1. 在转换前,确保备份原始文件,以防万一转换过程中出现问题。 2. 检查待转换...

    批量文件编码转换工具

    在转换过程中,需要注意的是,编码转换可能会对文件内容产生影响。如果文件中含有非GB2312或非UTF-8支持的字符,转换可能导致乱码。因此,在进行大规模转换之前,最好先备份重要文件,或者在小范围内进行测试,确认...

    字符编码转换器(Encoding Tool)EncodingTool

    《字符编码转换器(Encoding ...正确理解和使用字符编码转换,不仅可以避免数据丢失或乱码问题,还能有效地促进跨地区、跨平台的信息交流。因此,掌握字符编码转换的相关知识,对于任何IT从业者来说都是一项必备技能。

    字符编码转换器.rar

    总的来说,字符编码是计算机处理文本的关键,"字符编码转换器"是一个实用的工具,能够帮助用户和开发者解决编码兼容性问题,促进不同系统和语言之间的信息交流。掌握好字符编码的知识,无论是日常使用还是专业开发,...

    java编码格式转换

    - 由于ISO-8859-1编码只能表示拉丁字母,因此在转换非ASCII字符时会丢失信息。 - 示例:将字符串`"中文"`从Unicode转换为ISO-8859-1编码会得到乱码。 #### 常见的编码转换错误及处理 1. **从Unicode转换为ISO-...

    多功能编码转换工具_多功能编码转换_

    在信息技术领域,编码转换是解决数据在不同系统间迁移或共享时可能出现的字符集不兼容问题的关键。 【描述】:“多功能编码转换器”旨在帮助用户方便地处理数据库中的字符编码问题。例如,当你需要将一个使用MySQL...

    编码转换器(编码互转)

    4. **编码转换的重要性**: 不同系统或软件可能采用不同的字符编码,如果不进行转换,可能会出现乱码问题。例如,一个使用UTF-8编码的网页在只支持GBK编码的浏览器中打开,汉字就无法正确显示。 5. **编码转换器的...

    超级编码转换工具支持文件夹转换

    《超级编码转换工具:批量与高效转换的利器》 在数字化时代,文件的编码格式扮演着至关重要的角色。不同的编码格式适用于不同的应用场景,例如UTF-8适用于网页和跨语言交流,GBK则在中国大陆地区广泛用于老旧系统。...

    GBK-BIG-UTF编码转换软件

    需要注意的是,在进行编码转换时,可能会遇到编码不兼容导致的乱码问题,或者丢失某些特殊字符的情况。此外,对于二进制文件(如图片、音频等)进行编码转换是无效的,因为它们并不包含字符编码信息。 总的来说,...

Global site tag (gtag.js) - Google Analytics