我知道java使用UTF-16编码.即Java用于16 bits编码字符.所以java可以支持65536字符.所以java可以提供国际化.
当我使用Struts2时,我看到Struts2使用的UTF-8编码意味着它只能支持256个字符,ASCII但Struts2仍然支持国际化.
现在我的问题是UTF-8编码如何支持只有256个字符的国际化?
UTF-16和UTF-8是Unicode字符集的几种编码中的两种.Unicode中最多有1114112(0x0到0x10FFFF)个代码点.UTF-16以一个或两个16位代码单元对Unicode代码点进行编码.UTF-8以一到四个8位代码单元对Unicode代码点进行编码.
ASCII是使用一种编码设置的字符.它有128个代码点.通过Unicode的设计,Unicode的前128个代码点与ASCII相同.
Unicode比大多数字符集复杂一点.在Unicode中,字形(在一个位置呈现的符号)由一个基本代码点和任意数量的组合代码点的序列组成,例如变音符号或cedilla.
Java,JavaScript,.NET ...在内部使用UTF-16,以便字符串是UTF-16代码单元的计数序列,这意味着有无数个代码点和不计数的字形数.这使得迭代变得困难并且索引不可能.
但是,许多标准函数(如读取和写入文件)都使用UTF-8,因为它可以为西方语言节省文本空间.
| 归档时间: |
|
| 查看次数: |
538 次 |
| 最近记录: |