9
votes

Localisation .NET: les caractères japonais affichent des carrés

OK, je ne fais pas beaucoup de programmation .NET, mais j'en ai un que je maintiens, donc la réponse à cela peut être évidente.

Configuration:

  • Windows 7 Ultimate avec tous les packs de langue installés
  • Visual Studio 2008 WinForms VB.NET Projet.

    Je suis dans le processus de localisation de ce projet et lorsque je fais la version japonaise des formulaires, les personnages affichent des carrés, bien qu'ils rèvent correctement dans mon navigateur. Je suppose que c'est parce que la police par défaut n'a pas de glyphe pour ces caractères.

    Alors, mes questions:

    sont Winforms UTF-8 ou un autre codage d'un autre personnage? Y a-t-il un moyen de changer le codage du personnage? Devrais-je changer la police des formulaires japonais ou Windows le fera-t-il? Quelle est la meilleure pratique générale ici?

    Je veux savoir que je copie les personnages correctement dans mes formes, et je veux pouvoir les tester. Comment puis-je faire cela?

    Merci pour tout retour!

    EDIT : Merci pour l'info! Voici ce que j'ai trouvé.

    Arial Unicode MS a tous les glyphes, mais je ne l'utilisais pas, car ce n'était pas dans la liste des polices VS2008. J'ai édité manuellement la zone de police pour l'utiliser, puis Visual Studio jette le message " tendu de lire ou d'écrire une mémoire protégée. Cela indique souvent que d'autres mémoires ont été corrompues ." Je suppose que c'est parce que vs n'a pas la permission d'accéder à cette police pour une raison quelconque. Je retourne à la police par défaut, le message d'erreur effrayant disparaît.

    Puis, même lorsque vous utilisez Arial Unicode MS, le texte rend comme des blocs dans les titres de formulaires. Même texte rend correctement dans les étiquettes.

    Donc, je pense que je veux utiliser la police par défaut et laisser le gérer Windows. Je pense que j'ai lu que tout de XP sur le gérer va le gérer. Windows 2000 ne le fera pas, qui est une honte, mais que jamais, je ne sais pas de quelle police je devrais utiliser et quelle que soit la police, elle a été exclue de vs. Je ne sais pas comment l'ajouter sans obtenir beaucoup de messages d'erreur sur la mémoire protégée.

    Maintenant, le problème est de redimensionner les étiquettes sous la forme, car le texte traduit est souvent plus grand.

    En outre, je n'ai pas d'équipe de soutien pour le faire pour moi, mais je pouvais peut-être installer des copies supplémentaires de Windows 7 et passer au pack de langue japonais et essayer de l'exécuter. Mais cela devient une douleur majeure. Je pensais avoir lu que vous pouviez changer la langue pendant que l'application est en cours d'exécution, mais cela ne semble pas être vrai. Mme Docs Parlez de la façon de faire cela, mais Windows 7 vous indique également que vous devez vous déconnecter pour changer la langue.

    Mme Gothic semble fonctionner et cela fait partie de VS 2008, mais la barre de titre est toujours des carrés. C'est vraiment étrange, car les mêmes glyphes sont dans la Winform. Est-ce parce que les polices de barre de titre sont définies au niveau système et non au niveau de l'application?

    Désolé d'être Wordy. Pas sûr qu'il y a même une question ici. J'essaie juste de tout sortir, alors peut-être que cela aidera quelqu'un d'autre sur la ligne.


3 commentaires

La police des barres de titre de la fenêtre est définie dans l'applet d'affichage du panneau de commande. Encore une fois, cela ne sera pas défini sur une police qui ne peut pas rendant des glyphes japonais sur une version japonaise de Windows.


Gah! Buggy Fonte Support est l'une des raisons pour lesquelles j'utilise un IMAC à la maison pour les Japonais de ma famille. La commutation de langue sans soudure rend tout facile. Malheureusement, cela n'aide pas vraiment votre problème de développement.


J'utilise SEOGUI que Microsoft recommande aux raisons de savoir pourquoi il y a des carrés mais qui change à Arial fait la magie


3 Réponses :


2
votes

Voici un Great Lire sur vos problèmes de Joel Spolsky.


1 commentaires

C'est un problème plus sur les polices et les systèmes d'exploitation. Bien que le sujet général de Unicode soit connexe, cet article (Classic Spolsky) ne va pas aider beaucoup ici.



8
votes

Tout code .NET, y compris les formulaires Windows, utilise Unicode codé comme UTF16. Votre problème n'est probablement pas constitué d'une question de codage, qui produit des points d'interrogation au lieu de carrés. Obtenir un carré indique que vous utilisez une police qui manque le glyphe requis pour afficher le caractère japonais.

Vous pouvez utiliser l'applet Charmap.exe pour savoir ce que les glyphes sont pris en charge par la police que vous utilisez. S'ils manquent, le système d'exploitation est obligé de revenir à une police de substitution et de l'échouer quand il ne peut en trouver un. Affichage des carrés est alors tout ce qu'il peut faire. Une ancienne version du système d'exploitation est une cause très probablement pour cet accident, en particulier pour XP sans les polices d'Asie de l'Est optionnelles installées.

Notez que ce problème de police est très peu susceptible d'être un problème sur une machine qui boit la version japonaise de Windows. Il aura à des polices appropriées pour afficher le texte japonais bien sûr. Vous pouvez obtenir des versions de langue spécifiques de Windows via un abonnement MSDN. Au moins en obtenir un pour votre personnel d'assurance qualité afin de pouvoir vérifier que tout fonctionne correctement.


4 commentaires

Arial Unicode est-il disponible sur toutes les versions de langue de Windows 7? Savez-vous également ce qui se passe si vous sélectionnez une police au moment de la conception qui n'est pas disponible au moment de l'exécution? Le temps d'exécution Windows / .Net sélectionne-t-il automatiquement une police de remplacement?


Oui. Le mappeur de polices Windows choisit une police de substitution, SEGOE UI sur l'anglais Win7. Probablement pas en japonais. N'envoyez pas de logiciel que vous n'avez pas testé.


Arial Unicode MS n'est pas dans la liste Microsoft des polices fournies avec Windows 7? Microsoft.com/typography/font/product.aspx?pid=161 < / a>


Merci pour l'info! Voici ce que j'ai trouvé. Arial Unicode MS a tous les glyphes, mais je ne l'utilisais pas, car ce n'était pas dans la liste des polices VS2008. Lorsque je l'utilise, VS jette le message, tenté de lire ou d'écrire une mémoire protégée. C'est souvent une indication qu'une autre mémoire a été corrompue. "Je suppose que c'est parce que vs n'a pas la permission d'accéder à cette police pour une raison quelconque. Je retourne à la police par défaut, et tout va bien. Aller à éditer d'origine. Message, parce que je suis hors de l'espace ici ...



0
votes

Juste pour être clair, avez-vous installé le support de langue: Panneau de configuration / Options régionales / Langues d'affichage. Vous avez probablement un texte japonais dans le code source. Vous enregistrez le code source comme une sorte d'unicode, non?

Pour 3 ans, j'ai maintenu une application japonaise basée sur des formes (www.jbrute.com) émigrée de MFC, à Winforms au WPF sur les versions américaines anglaise de XP, Vista et Win7. Il affiche Kanji, Kana et utilise l'IME. Pas de chagrin que ce soit.


0 commentaires