我们可以在ASCII和Unicode之间切换吗

我们可以在ASCII和Unicode之间切换吗,第1张

我们可以在ASCII和Unicode之间切换吗

Java在内部使用Unipre。总是。实际上,它大多数时候都使用UTF-16,但是目前还不多。

不能在 内部使用ASCII(

String
例如)。您 可以 用Unipre表示可以用ASCII表示的任何字符串,因此这不成问题。

该平台 唯一
起作用的地方是Java必须在未指定编码的情况下选择一种编码。例如,当您创建一个

FileWriter
String
值写入String时:此时,Java需要使用编码来指定应如何将特定字符映射到字节。如果未指定,则使用平台的默认编码。该默认编码
几乎从来都不是ASCII 。大多数Linux平台使用UTF-8,Windows 通常 使用某些ISO-8859-
*派生词(或其他特定于区域性的8位编码),但是当前的 *** 作系统都没有使用ASCII(仅仅是因为ASCII不能代表很多重要字符) 。

实际上,如今,纯ASCII几乎是无关紧要的:没有人使用它。ASCII
作为大多数8位编码(包括UTF-8)映射的公共子集很重要:在许多编码中,较低的128个Unipre代码点将1:1映射为0-127的数值。但是不再使用纯ASCII(
未定义 值128-255 )。

附带说明一下,Java
9有一个内部优化,称为“紧凑字符串”,其中仅包含用Latin-1表示的字符的字符串每个字符使用一个字节,而不是2。这种优化对于各种“计算机说话”非常有用例如XML和类似的协议,其中大部分文本位于ASCII范围内。但这对开发人员也是完全透明的,因为所有处理都是在

String
类内部完成的,因此从外部看不到。



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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存