1

我正在尝试将 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”语言环境字符串。

4

1 回答 1

1

因为您的C语言环境使用没有字符的字符集(可能是 US-ASCII)£,并且字符串无法在没有丢失的情况下进行转换。

于 2013-07-26T15:30:22.633 回答