Mac OS X 上的 iconv 库:奇怪的行为
iconv library on Mac OS X: strange behavior
我正在将应用程序从 CentOS 6 移植到 Mac OS X。它依赖于iconv,并且可以在CentOS中正常工作。但是,在Mac OS X上它没有。我看到以下行为:
const char *codePages[] = { "MAC", "LATIN1", "ISO_8859-1", "WINDOWS-1252", "ASCII" };
int codePagesCount = 5;
iconv_t converter1 = iconv_open("UTF-32", codePages[0]);// Works
if(converter1 != (iconv_t)-1)
iconv_close(converter1);
iconv_t converter2 = iconv_open("UTF−32", "MAC");// Fails, returns -1
if(converter2 != (iconv_t)-1)
iconv_close(converter2);
这段代码看起来微不足道:第一个iconv_open创建转换器并从codePages数组中获取代码页名称,它的零元素是MAC,所以对我来说,Mac OS X必须支持从自己的代码页到Unicode的转换是合乎逻辑的。第一次呼吁iconv_open有效。但是,对iconv_open的第二次调用也会执行相同的操作。它还创建从Mac编码到Unicode的转换器。无论出于何种原因,它都会失败并返回 -1。当调用具有相同参数的相同函数(一个是硬编码数组的元素,另一个是硬编码字符串)导致第一次调用功能正常而第二次调用失败时,这种情况的原因可能是什么?
第二个"UTF-32"与第一个不同:第一个使用普通减号,而第二个使用我猜的尾号。
相关文章:
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 如何在 Mac OS 上安装 boost-mpi 及其对 clang 的依赖关系?
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- wxWidgets - 阻止 OS X 上的窗口模式对话框
- 在 OS X 上的 ifconfig.h 的 ifadder 结构中,我可以将ifa_data转换为什么?
- 使用OS提供的API在MacOS上放置
- 如何在Mac OS上的C 中实现命名管
- 在 Mac OS 上遇到的"Segmentation fault: 11" [C++]
- 基类 C++14 模板函数在 Mac OS 上的 clang 中不可见(递归模板)
- 标准::字符串::空的未定义符号错误;Mac OS High Sierra 上的 c++ 标准方法链接错误
- 如何找出在 Mac OS 上使用的 cpp 编译器
- 在 Ubuntu OS 中的 Matlab 2017a 上切换编译器
- MXNet ML lib C++ OS X 上的分段错误
- Mac OS X 上的 GCC 7 找不到C++标准库
- 在Mac OS上编译Halide的camera_pipe应用程序时出现问题
- 带有 Rebel t6i 的 OS X 10.12.1 上的 EDSDK 3.4.0:拍摄照片后最多 30 秒内不会收到
- Windows OS上的静态链接
- 用Mac OS X Sierra上的OpenCV C 编译Hello World
- C++ mac OS X El Capitan上的openmp,Valgrind错误(数据竞赛)
- 如何在Mac OS上的C/C++/Objective-C中找到SystemUIServer进程的PID