c - 使用 iconv() 的 UTF-8 到 C/POSIX 语言环境转换失败

标签 c linux utf-8 character-encoding

我正在尝试将 UTF-8 字符串转换为 C/POSIX 语言环境字符串
UTF-8 字符串是“abc123£”(在 bash 中是“abc123\302\243”`)

  1. iconv_open("", "UTF-8");//""表示默认程序语言环境,即 C
  2. 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/

相关文章:

c - 并发标志集是否需要#pragma omp atomic?

arrays - 在 Linux Shell 脚本中通过 for 循环访问数组

linux - 如何加速在非常大的单单元 BAM 文件上使用 Regex 的 sed

php - JSON 类无法处理阿拉伯语单词

c - 写一个小程序,困了,从命令行获取循环计数

c - 链表的无限冒泡排序

c# - 在单元测试中使用 StringBuilder 进行 PInvoking

python - 使用 DseAuthenticator 和 DseAuthorizer 从 Windows 将 python 连接到 cassandra 集群

python - 使用python错误将 'UCS-2 Little Endian'文件编码为 'utf8'

php - mysql插入时截断的字符串