[JAVA] Si vous rencontrez des problèmes avec le problème de code de caractère du Myanmar (birman)

À propos du code de caractère au Myanmar

Le Myanmar est l'une des régions où le développement de la technologie Internet a été laissé à l'écart du monde en raison de son histoire. Dans le passé, le code de caractère Zawgyi était le plus courant, mais à mesure que le marché s'ouvre et que l'internationalisation progresse, Il passe à UNICODE.

Dans le cas du Japon, cela ressemble à l'histoire du passage à UTF8 à partir de l'époque où il y avait des sites Web tels que EUC et SJIS. https://enjoy-yangon.com/ja/enyanblog/351-change-myanmar-font-zawgyi-to-unicode

Politique de base pour traiter les caractères déformés en raison de codes de caractères mixtes

Si vous n'êtes pas une personne locale, les personnages eux-mêmes sont brouillés, il est donc vrai que nous, ingénieurs et prorameurs, ne savons pas quel est le problème. Cependant, si vous êtes ingénieur, vous devez travailler à la résolution du problème.

En d'autres termes, vous devez déterminer les exigences nécessaires pour résoudre le problème et le résoudre avec un logiciel.

Exigence 1 Zawgyi ou UNICODE peuvent être jugés en phrases Exigence 2 Conversion de code de caractère de Zawgyi à UNICODE

Ces deux points sont des exigences essentielles.

Dans la mise en œuvre réelle

J'ai cherché Github etc. L'outil Google Myanmar a été un succès. https://github.com/google/myanmar-tools

Si vous vérifiez ce contenu, il est écrit qu'il a une fonction pour juger Zawgyi ou UNICODE. Utilisez ceci.

D'autres indices sont cachés, utilisez Rabit pour convertir le code de caractère de Zawgyi en UNICODE

Rabbit-Converter https://github.com/Rabbit-Converter

Deux bibliothèques ont été trouvées.

Avec PHP, tout ce que vous avez à faire est d'installer la bibliothèque avec composer, de charger la classe et de la transmettre. C'est facile à utiliser.

    1. Jugez le code du personnage.
  1. Convertir

python


$ZawgyiDetector = new ZawgyiDetector();
$Rabbit = new Rabbit();
$text = 'Texte du Myanmar';
$check = $ZawgyiDetector->getZawgyiProbability($input1);

if($check >= 0.95){
  $newtext = $Rabbit->zg2uni($text);
}

Si vous corrigez le code de caractère de cette manière, il s'affichera correctement dans UNICODE. Pour les polices UNICODE Myanmar, la version UNICODE de la police Web doit être appliquée au CSS.

Traiter l'entrée et la sortie

Lorsque vous utilisez CMS, etc., si vous insérez ce code lorsque vous le mettez dans la base de données ou lorsque vous le sortez, les caractères déformés seront résolus. Je pense qu'il est préférable d'ajouter une fonction de vérification lors de la mise dans la base de données. Si vous exécutez cette logique à chaque fois, le rendu sera lent en fonction du nombre de caractères.

C'est une histoire rare, mais si vous travaillez sur le Web lié au Myanmar, veuillez vous y référer.

À la prochaine.

Recommended Posts

Si vous rencontrez des problèmes avec le problème de code de caractère du Myanmar (birman)
Devinez le code de caractère en Java
L'application absorbe la différence de code de caractère
Que faire si vous avez activé Utiliser le moteur basé sur WSL2 dans Docker Desktop avec une installation WSL2 insuffisante
Syntaxe détaillée de Ruby: quand il y a des variables et des méthodes avec le même nom
Si vous rencontrez des problèmes avec JPA ou Hibernate, ne cherchez pas sur Google et regardez d'abord ici
Dans Redmine, vous pouvez obtenir le projet avec Project.find (<identifier>)
Spécifiez le code de caractère de la source lors de la construction avec Maven
Corrigez le code de caractère en Java et lisez à partir de l'URL
[Ruby] problème avec l'instruction if
Si vous souhaitez inclure la classe parente dans @builder de Lombok
Que faire si vous oubliez votre mot de passe root sur CentOS7