2010-10-17 17 views
2

avertissement C4566: caractère représenté par ter-nom universel carac '\ u2E81' ne peut pas être représenté dans la page de code (936)Comment afficher les caractères arbitraires dans c?

Parfois, nous avons besoin d'afficher du texte en plusieurs langues telles comme le russe, le japonais et ainsi de suite.

Mais il semble qu'une seule page de code ne peut afficher que des caractères d'une seule langue, comment puis-je afficher des caractères dans plusieurs langues en même temps?

+1

Utilisez-vous "" ou L ""? –

+0

J'utilise "" .. – Alan

Répondre

2

Puisque vous utilisez (apparemment) VC++, vous voudrez probablement passer à la page de codes UTF-8. Vous aurez également besoin de définir la police à celle qui a des glyphes pour tous les points de code qui vous intéressent (beaucoup ont peu, voire pas, au-delà des 256 premiers).

+0

Quelle est cette police qui a des glyphes pour tous les points de code? J'ai besoin de celle qui supporte tous les glyphes depuis que je fais l'internationalisation. – Alan

+0

Je ne connais pas de point de code * all *. Je doute un peu qu'une telle chose existe. Vous êtes plutôt bloqué en définissant les langues qui vous intéressent vraiment, et en trouvant une police qui les couvre. Je doute que vous ayez besoin de l'alphabet Klingon, même si les encodages pour eux ont été définis. –

+0

@Alan: il n'y a pas de police unique avec des glyphes pour tous les points de code. Cela n'a pas de sens, en fait. Une telle police serait énorme et consommerait donc des ressources précieuses (telles que la mémoire). Il y a quelque chose appelé "mécanisme de secours de police" à la place. Si les points de code ne sont pas attribués par votre police actuelle, la police de repli sera utilisée pour les afficher (à condition que cette police de repli soit installée et que le mappage existe dans le registre [CP936 est MS Windows tearm]). –