0

たくさんのユニットラベルを印刷しようとしています。それらのいくつかはギリシャ文字を含み、いくつかは他の面白いコードポイントを持っています。

wctomb私はそれを、例えばUTF-16文字8240で何をすべきかわからない関数にまでさかのぼりました。

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

wctomb使用するロケールを「すべてのUnicode文字」など に設定するにはどうすればよいですか?

必要な文字から始めて、必要な適切なロケール名を見つけるにはどうすればよいですか?

4

1 に答える 1

2

正しい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を参照してください

于 2011-01-27T13:09:23.793 に答える