我正在尝试将 UTF-8 字符串转换为 C/POSIX 语言环境字符串
UTF-8 字符串是“abc123£”(在 bash 中是“abc123\302\243”`)
- iconv_open("", "UTF-8");//""表示默认程序语言环境,即 C
- iconv_open("UCS-2LE", "UTF-8");
iconv() 在情况 1 中返回 EILSEQ 给我,但在情况 2 中返回成功。
这是什么原因?
另外,我怎样才能成功地将任何 UTF-8 字符串转换为“C”语言环境字符串。
最佳答案
因为您的 C
语言环境使用的字符集(可能是 US-ASCII)没有 £
的字符,并且字符串 不能 无损转换。
关于c - 使用 iconv() 的 UTF-8 到 C/POSIX 语言环境转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885288/