我见过许多android系统,例如Linux & Mac和android,它们接受const char*作为文件路径的参数。
其中一个例子是dlopen,如文档所示,第一个参数是const char*,那么它是否支持Unicode文件路径,例如使用中文的路径?
发布于 2014-04-13 03:38:51
假定在现代Linux/Unix系统中,unicode文件名是用面向字节的UTF-8语言环境表示的(尽管一些底层文件系统在UTF-16中存储内部文件名)。
发布于 2014-04-13 03:42:11
支持Unicode文件名不需要POSIX。(参见:https://stackoverflow.com/a/2306003/481267)但是,只要它们是用UTF-8编码的,那么支持Unicode就没有技术障碍。许多现代文件系统允许文件名中的任何字符,但\0和/除外。
POSIX API处理以空结尾的字节序列,当字符串用UTF-8编码时,没有代码点的表示包含零字节。此外,ASCII范围以外的所有字符(0x00-0x7f)都完全使用具有高阶位集(0x80-0xff)的字节进行编码,因此不可能将系统混淆为在某些Unicode字符中间存在一个目录分隔符。
https://stackoverflow.com/questions/23038827
复制相似问题