質問

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

私はそれをにたどりました 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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top