java中utf-8含义,含义 - <?xml version =“1.0”encoding =“utf-8”?>

"本文探讨了字符编码如ASCII、UTF-8和ISO-8859-1的区别,以及在XML中如何通过"encoding"属性指定字符集。XML解析器需要知道正确的编码来正确解读字节序列,以避免字符混乱。版本属性则指定了XML的版本,影响解析器的行为。"
摘要由CSDN通过智能技术生成

要理解"encoding"属性,您必须了解字节和字符之间的区别 .

将字节视为0到255之间的数字,而字符则是"a","1"和"Ä"之类的字符 . 可用的所有字符集称为字符集 .

每个字符都有一个或多个字节的序列,用于表示它;但是,字节的确切数量和值取决于所使用的编码,并且有许多不同的编码 .

大多数编码都基于一个旧的字符集和称为ASCII的编码,每个字符只有一个字节(实际上只有7位),包含128个字符,包括美国英语中使用的许多常用字符 .

例如,ASCII字符集中有6个字符,由值60到65表示 .

Extract of ASCII Table 60-65

╔══════╦══════════════╗

║ Byte ║ Character ║

╠══════╬══════════════║

║ 60 ║ < ║

║ 61 ║ = ║

║ 62 ║ > ║

║ 63 ║ ? ║

║ 64 ║ @ ║

║ 65 ║ A ║

╚══════╩══════════════╝

在完整的ASCII集中,使用的最低值为零,最高值为127(这两个都是隐藏的控制字符) .

但是,一旦开始需要比基本ASCII提供的字符更多的字符(例如,带有重音符号,货币符号,图形符号等的字母),ASCII不适合您需要更广泛的内容 . 您需要更多字符(不同的字符集),并且您需要不同的编码,因为128个字符不足以容纳所有字符 . 有些编码提供一个字节(256个字符)或最多六个字节 .

随着时间的推移,已经创建了许多编码 . 在Windows世界中,有CP1252或ISO-8859-1,而Linux用户倾向于使用UTF-8 . Java本身使用UTF-16 .

一个编码中的字符的一个字节值序列可能代表另一个编码中的完全不同的字符,或者甚至可能无效 .

例如,在ISO 8859-1中, â 由一个字节值 226 表示,而在UTF-8中,它是两个字节: 195, 162 . 但是,在ISO 8859-1中, 195, 162 将是两个字符, Ã, ¢ .

将XML视为字符序列而不是字节序列 .

想象一下,接收XML的系统会看到字节 195, 162 . 它是如何知道这些是什么字符的?

为了让系统将这些字节解释为实际字符(并显示它们或将它们转换为另一种编码),它需要知道XML中使用的编码 .

由于大多数常见的编码与ASCII兼容,因此就基本的字母字符和符号而言,在这些情况下,声明本身可以通过仅使用ASCII字符来说明编码是什么 . 在其他情况下,解析器必须尝试找出声明的编码 . 因为它知道声明以 <?xml 开头,所以这样做要容易得多 .

最后, version 属性指定了XML版本,目前有两个版本(请参阅Wikipedia XML versions . 版本之间存在细微差别,因此XML解析器需要知道它正在处理什么 . 在大多数情况下(对于说英语的人)无论如何),版本1.0就足够了 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值