我从 OSX 文件系统获得的 NFD Unicode 字符串有问题。
这就是我在 OSX "A\xcc\x88" 上的 "Ä"-Umlaut 得到的,这也是我所期望的 "\xc3\x84"。在 Windows 下执行相同的功能(简单的 boost 文件系统操作,列出目录)。
搜索了一会,我发现Apple的NFD编码为UTF-8和世界其他地方的NFC。我尝试通过 NSStrings 或 boost::locale::normalize 进行转换,但没有成功。
有谁知道在 C++ 中执行此操作的方法(如有必要,我可以通过 obj-c 使用 Cocoa)?
之后我想将原始 unicode 字符串作为 std::string (使用 unicode 编码)。