我正在使用 iconv 的音译函数将 unicode 字符串转换为最接近的 ASCII 等价物。但是,该字符串包含一些没有 ASCII 等效符号的符号。我想保留这些符号而不丢弃它们。
目前,这就是我正在做的事情:
iconv_t cd = iconv_open("ASCII//IGNORE//TRANSLIT", "UTF-8");
const char *utf8 = "ç ß ∑ a";
char* in = const_cast<char*>(utf8);
size_t in_bytes = strlen(in);
char buf[BUFSIZ] = {};
char* out = buf;
size_t out_bytes = sizeof(buf);
iconv(cd, &in, &in_bytes, &out, &out_bytes);
printf("%s", buf);
// prints
c ss a
如何配置 iconv 以产生如下输出:
c ss ∑
如果 iconv 无法做到这一点,是否有办法以编程方式实现这一目标?