2012-10-02 2 views
1

Possible en double:
How to Force a jar to uses(or the jvm runs in) utf-8 instead of the system's default encodingComment convertir une chaîne en un encodage différent dans Scala?

J'ai un tas de cordes que je veux lire en UTF-8. Existe-t-il un moyen de forcer ce codage dans Scala, sans passer un paramètre de ligne de commande? Par exemple, je veux faire quelque chose comme val utf8EncodedString = new String(myString, "UTF-8").

+0

Les chaînes sont-elles transmises sur la ligne de commande ou à partir d'un fichier ou d'une interface graphique? – Dunes

+0

Dup de http://stackoverflow.com/questions/4159551/how-to-force-a-jar-to-uses-the-jvm-runs-in-utf-8-instead-of-the-systems-def – opyate

+0

pas un doublon –

Répondre

7

Les chaînes n'ont pas d'encodage en Scala/Java. En interne, ils sont toujours sauvegardés en UTF-16, mais cela n'a pas d'importance quand vous les utilisez. L'encodage et le décodage ont lieu dans les classes d'E/S. Vous devriez regarder la documentation de l'objet scala.io.Source, qui contient des méthodes d'usine pour créer Source s, qui prennent l'encodage comme paramètre.

+3

Hmm, donc j'ai essayé d'utiliser 'Source.fromBytes (text.toLowerCase.getBytes()," UTF-8 "). MkString' pour convertir mon texte en UTF-8, mais cela n'a pas fonctionné - je suis probablement encore mal comprendre comment utiliser 'Source'. Savez-vous ce que je fais mal? (Pour donner plus de contexte, j'essaie de prendre du texte chinois et de le diviser en caractères chinois individuels.) – grautur

Questions connexes