Je suis un débutant en Java, alors s'il vous plaît gardez avec moi si c'est un problème très facile. J'ai un test JUnit où j'ai un mot japonais codé en dur assigné directement à une variable de chaîne. Maintenant, juste après que cette chaîne est assignée, elle devient "??" ce qui signifie que l'encodage est incorrect quelque part. Puisqu'il s'agit d'un test, je crois qu'il isole complètement le problème des autres environnements d'interface utilisateur. S'il vous plait aidez moi avec ceci. Été 2 jours sans solution. Merci d'avance.Japonais String en Java
Répondre
Si vous avez la même chaîne deux fois, cela ne devrait pas vraiment importer quel codage est utilisé ... mais je suggérerais d'utiliser le format d'échappement \uxxxx
pour indiquer quels caractères Unicode sont réellement utilisés. De cette façon, il est fondamentalement indépendant de l'encodage. Si vous voulez vraiment voulez utiliser des littéraux de chaîne avec le japonais dans votre code, vérifiez que tous vos outils de construction (etc) sont d'accord sur l'encodage de fichier que vous utilisez. Cela varie entre IDE, Ant etc. (Il est le drapeau -encoding
pour javac
, par exemple.)
Une petite mise à jour sur mon commentaire précédent: j'ai pu reproduire vos résultats, avec les points d'interrogation. Je l'ai fait exactement comme vous l'avez fait, sauf que j'ai changé mes paramètres par défaut du shell LANG
.
La raison pour laquelle vous pourriez obtenir des points d'interrogation est que les paramètres régionaux de votre environnement ne correspondent pas aux paramètres régionaux souhaités. Essayez de faire cette première dans votre shell (Bash):
export LANG="ja_JP.UTF-8"
ou sous Windows:
set LANG=ja_JP.UTF-8
Si cela ne fonctionne pas, vous pouvez essayer de l'invite de commande: chsh 65001 puis exécutez votre java programme. Désolé de jeter toutes ces suggestions ... j'espère que ça fonctionne!
Merci pour votre réponse.J'ai essayé de régler le LANG (je suis sous Windows alors j'espère que c'est la même chose), mais j'ai le même problème. –
Modifié ci-dessus réponse ^ – user224579
Si votre sortie de débogage dépend de System.out, il est possible que la sortie soit convertie au codage par défaut de votre plate-forme. (! Qui est presque toujours)
je lance toujours avec -Dfile.encoding = UTF8 quand on veut soutenir les jeux de caractères internationaux
-à-dire exécuter comme: java -Dfile.encoding = UTF8 MyApp
(REMARQUE: Si vous n'êtes pas en cours d'exécution à partir d'une CLI, il peut y avoir d'autres façons dont vous définissez ces propriétés)
Essayez cette
...
assertEquals("会社", new String(test.getBytes(),"utf8"));
...
- 1. Comment convertir une collection Groovy String en Java String Array?
- 2. Caractères japonais dans java webapp et oracle
- 3. Null \ u0000 dans Java String?
- 4. Difficulté à afficher des caractères japonais avec une substance java
- 5. Java Servlets: String null ou "null"
- 6. Java isEmpty() non défini pour String?
- 7. iphone Clavier japonais
- 8. /v en C# string
- 9. interpolation String en JavaScript
- 10. MySQL - Insérer japonais de PHP - Encodage Troubles
- 11. C++ .NET convertir System :: String en std :: string
- 12. Conversion d'un hexagone en string
- 13. est-il un moyen simple de convertir mon objet XML en String en java?
- 14. C programme qui imprime un autre programme C en japonais
- 15. Java équivalent d'une fonctionnalité Python -> set (string)
- 16. String Java à partir de Carte XY Coordonnées
- 17. Quand utiliser CultureInfo.GetCultureInfo (String) ou CultureInfo.CreateSpecificCulture (String)
- 18. Comment convertir un dictionnaire <string, string> en une chaîne json en utilisant System.Json?
- 19. Comment convertir quelque chose de "string *" en "const string &" en C++?
- 20. Comment afficher les caractères japonais dans JTextArea
- 21. Iphone CGContextShowTextAtPoint pour les caractères japonais
- 22. IDictionary <string, string> ou NameValueCollection
- 23. Mappage JPA <String, String>
- 24. ServiceController.Start (string [])
- 25. Conversion de String en <T>
- 26. en utilisant std :: find_if avec std :: string
- 27. Comment INSÉRER binaire std :: string en BLOB
- 28. Convertir ListBox.ObjectCollection en String array dans VB.NET
- 29. Comment puis-je détecter du texte japonais dans une chaîne Java?
- 30. String to Array and Back
peut-être que votre débogueur est non conforme? En outre, vous ne pouvez pas supposer que la chaîne affectée est Unicode en regardant votre exemple de code. Donc, comme John Skeet l'a suggéré, la représentation pourrait être meilleure. – user224579