Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OSX上的xlocale是否已损坏?_C++_Macos_Locale_Libc++_Xlocale - Fatal编程技术网

C++ OSX上的xlocale是否已损坏?

C++ OSX上的xlocale是否已损坏?,c++,macos,locale,libc++,xlocale,C++,Macos,Locale,Libc++,Xlocale,我有一个简单的程序,它使用命令行上传递给它的一系列区域设置来测试wchar_t和char之间的转换。它通过打印出区域设置名称和转换失败的字符串,输出转换失败的列表 我正在使用clang和libc++构建它。我的理解是,libc++的命名语言环境支持是由osx上的xlocale库提供的 我看到了一些意想不到的失败,以及一些转换应该失败但没有失败的实例 这是节目单 警告调用此程序,如:locale-a |/a.out或pass\ 区域设置名称对您的平台有效,通过标准输入每行一个 包括 包括 包括 包

我有一个简单的程序,它使用命令行上传递给它的一系列区域设置来测试wchar_t和char之间的转换。它通过打印出区域设置名称和转换失败的字符串,输出转换失败的列表

我正在使用clang和libc++构建它。我的理解是,libc++的命名语言环境支持是由osx上的xlocale库提供的

我看到了一些意想不到的失败,以及一些转换应该失败但没有失败的实例

这是节目单

警告调用此程序,如:locale-a |/a.out或pass\ 区域设置名称对您的平台有效,通过标准输入每行一个 包括 包括 包括 包括 样板 类可用方面:公共方面{ 公众: //FIXME:在可用时使用继承构造函数 //使用Facet::Facet; 样板 可用的_facetArgs&&…args:Facetstd::forwardargs…{} ~u面{} }; int main{
数组args={La,Lé,L·,L€,Lаа,Lψ,Lא,Lআ,L✈,L가,L我怀疑您看到了xlocale系统的问题。A将非常感谢!

我不知道您为什么期望wchar\u t是UTF-32,或者您从哪里听说OSX的约定wchar\u t是UTF-32。这肯定是错误的。wchar\u t只有16位宽


有关wchar\u t的更多信息,请参阅。

在10.8中看起来仍然不完整:也许有某种方法可以获取xlocale数据并手动修复?事实证明,UTF-32实际上并没有被OS X上的所有地区用作wchar\u t编码,这是非常不幸的。wchar\u t在OS X和大多数unix操作系统上是32位宽,而不是16位宽。…维基百科提到了一个事实,在其他平台上也可能是8位。C++11添加了char16和char32来解决这个问题,但这是无关的。