![将语言环境设置为 UTF-8 等多字节编码会产生什么影响?](https://linux22.com/image/184275/%E5%B0%86%E8%AF%AD%E8%A8%80%E7%8E%AF%E5%A2%83%E8%AE%BE%E7%BD%AE%E4%B8%BA%20UTF-8%20%E7%AD%89%E5%A4%9A%E5%AD%97%E8%8A%82%E7%BC%96%E7%A0%81%E4%BC%9A%E4%BA%A7%E7%94%9F%E4%BB%80%E4%B9%88%E5%BD%B1%E5%93%8D%EF%BC%9F.png)
作为美国人,我可以明显选择 en.UTF-8 或 ISO-8859-1 编码作为区域设置。
大多数指南建议使用 UTF-8 编码,但我有点担心它是多字节编码。使用这个会产生什么后果?有些文本文件会有那些烦人的字符序列吗t h a t l o o k l i k e t h i s
?这两种选择有何优缺点?
例如,假设我在图形窗口管理器中使用浏览器。浏览器是否会因为我选择 ISO-8859-1 作为区域设置而无法显示 UTF-8 字符?
答案1
区域设置指定:
- 您的终端能够接收和输出哪些字符
- 您的终端应用程序能够接收和输出哪些字符
- 您的应用程序的语言
它不太可能影响您的图形应用程序。
您提供的示例是 UTF-16 编码,其最小数据单位是 16 位/2 字节。它是许多 Windows 应用程序的默认编码,但除了某些实用程序(例如iconv
.
我强烈建议不要切换到 C/ISO-8859-1,因为
- 您将无法处理 ASCII 未涵盖的任何文本
- 您将无法在控制台中显示 ASCII 未涵盖的任何字符
最后UTF-8是一种多字节编码仅有的对于 ASCII 未涵盖的符号。 ASCII 文本可以被视为 UTF-8。
另请检查此答案:UTF-8 和 ISO-8859-1 有什么区别?