我正在尝试打印一堆单位标签;其中一些包含希腊字符,一些具有其他有趣的代码点。

我将其追溯到wctomb函数,例如不知道该怎么做。 UTF-16字符8240:

char mb[10];
assert( 0 <= wctomb(mb,8240) );


如何将wctomb使用的语言环境设置为“所有unicode字符”?

如何从所需的字符开始找到所需的正确的语言环境名称?

最佳答案

设置正确的UTF-8语言环境将解决此问题;

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main()
{
    setlocale(LC_ALL, "en_US.UTF-8");
    char mb[10];
    assert( 0 <= wctomb(mb,8240) );
    printf("%s\n", mb);
    return 0;
}


http://ideone.com/sflZj

10-08 12:21