ISO-8859-1编码和二进制数据保存

ISO-8859-1编码和二进制数据保存,第1张

ISO-8859-1编码和二进制数据保存

"u00F6"
不是字节数组。这是一个包含单个字符的字符串。而是执行以下测试:

public static void main(String[] args) throws Exception {    byte[] b = new byte[] {(byte) 0x00, (byte) 0xf6};    String s = new String(b, "ISO-8859-1"); // decoding    byte[] b2 = s.getBytes("ISO-8859-1"); // encoding    System.out.println("Are the bytes equal : " + Arrays.equals(b, b2)); // true}

要检查任何字节是否正确,只需对所有字节的循环代码进行改进:

public static void main(String[] args) throws Exception {    byte[] b = new byte[256];    for (int i = 0; i < b.length; i++) {        b[i] = (byte) i;    }    String s = new String(b, "ISO-8859-1");    byte[] b2 = s.getBytes("ISO-8859-1");    System.out.println("Are the bytes equal : " + Arrays.equals(b, b2));}

ISO-8859-1是一种标准编码。因此,所使用的语言(Java,C#或其他任何语言)都没有关系。

这是Wikipedia参考,声称每个字节都被覆盖:

在1992年,IANA注册了字符映射图ISO_8859-1:1987,它以其首选的MIME名称ISO-8859-1(请注意ISO
8859-1的额外连字符)而广为人知,ISO 8859-1是ISO 8859-1的超集。在互联网上使用。该映射将C0和C1控制字符分配给未分配的代码值,
从而通过每个可能的8位值提供256个字符。

(强调我的)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5564923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存