bau*_*ack 31 unicode programming-languages
我想有一个规范的地方来汇集有关各种语言的Unicode支持的信息.它是核心语言的一部分吗?它是在图书馆提供的吗?它根本不可用吗?是否有一种资源流行的语言中的Unicode信息资源?请回答一种语言.此外,如果您可以使语言成为更容易找到的标题.
Chr*_*utz 11
Perl主要具有内置的Unicode支持.有点.来自perldoc:
Python 3k(或3.0或3000)具有处理文本(unicode)和数据的新方法:
Text Vs. 数据而不是Unicode Vs. 8位.另请参见Unicode HOWTO.
与.NET相同,Java在内部使用UTF-16:java.lang.String
甲
String表示在其中UTF-16格式的字符串增补字符由表示替代双(见节的Unicode字符表示在Character类的更多信息).索引值是指char代码单元,因此补充字符在a中使用两个位置String.
Rust 的字符串 (std::String和&str) 始终是有效的 UTF-8,并且不使用 null 终止符,因此不能像在 C/C++ 等中那样作为数组进行索引。它们可以像 Go 一样使用切片.get从 1.20 开始,需要注意的是,如果尝试对代码点的中间进行切片,则会失败。
Rust 还具有OsStr/OsString用于与主机操作系统交互。它是 Unix 上的字节数组(包含任何字节序列)。在 Windows 上,它是 WTF-8(UTF-8 的超集,用于处理 Windows 和 Javascript 中允许的格式不正确的 Unicode 字符串),&str并且String可以自由转换为OsStr或OsString,但需要检查以隐藏其他方式。要么因无效的 unicode 而失败,要么用 Unicode 替换字符替换。(还有Path/ ,它只是/ 的PathBuf包装)。OsStrOsString
还有CStr和CString类型,它们表示以 Null 结尾的 C 字符串,就像OsStr在 Unix 上一样,它们可以包含任意字节。
Rust 不直接支持 UTF-16。但可以在 Windows 上转换OsStr为 UCS-2。
Python 2 有类str和unicode. str对象存储字节,unicode对象存储UTF-16字符。大多数库函数都支持两者(例如os.listdir('.')返回列表str、os.listdir(u'.')返回对象列表unicode)。两者都有encode和decode方法。
Python 3 基本上重命名unicode为str. Python 3 相当于str类型bytes。bytes有一个decode和str一个encode方法。由于 Python 3.3 str对象内部使用多种编码之一以节省内存。对于 Python 程序员来说,它看起来仍然像一个抽象的 unicode 序列。
Python 支持:
Python 不支持/支持有限:
另请参阅:Python 中 Unicode 的真相