Domanda

Sto provando a stampare un gruppo di etichette delle unità; Alcuni di essi contengono caratteri greci, alcuni hanno altri punti di codice divertente.

I risalire indietro al funzioni wctomb non sapendo cosa fare con per esempio UTF-16 caratteri 8240:

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

Come faccio a impostare il locale utilizzato da wctomb per esempio "Tutti i caratteri Unicode"?

Come faccio a trovare il giusto ho bisogno nome locale, a partire dai personaggi di cui ho bisogno?

È stato utile?

Soluzione

L'impostazione di una corretta localizzazione UTF-8 sarà risolvere il problema;

#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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top