Comment s'assurer que les Chaînes de caractères sont en UTF-8?
Comment convertir cette Chaîne the surveyÂ’s rules
à UTF-8
en Scala?
J'ai essayé ces routes, mais ne fonctionne pas:
scala> val text = "the surveyÂ’s rules"
text: String = the surveyÂ’s rules
scala> scala.io.Source.fromBytes(text.getBytes(), "UTF-8").mkString
res17: String = the surveyÂ’s rules
scala> new String(text.getBytes(),"UTF8")
res21: String = the surveyÂ’s rules
Ok, je suis résolu de cette façon. Pas une conversion, mais une simple lecture
implicit val codec = Codec("US-ASCII").onMalformedInput(CodingErrorAction.IGNORE).onUnmappableCharacter(CodingErrorAction.IGNORE)
val src = Source.fromFile(new File (folderDestination + name + ".csv"))
val src2 = Source.fromFile(new File (folderDestination + name + ".csv"))
val reader = CSVReader.open(src.reader())
Semble que tout fonctionne comme prévu, n'est-ce pas?
il semble qu'il en a de la chance, et sa plate-forme de codage par défaut est UTF-8. Mais ce n'est pas le cas en général.
La question n'a pas de sens. Un codage de caractères est utilisé pour convertir les caractères d'octets, et vice versa. Vous ne pouvez pas "convertir une chaîne de caractères UTF-8".
il semble qu'il en a de la chance, et sa plate-forme de codage par défaut est UTF-8. Mais ce n'est pas le cas en général.
La question n'a pas de sens. Un codage de caractères est utilisé pour convertir les caractères d'octets, et vice versa. Vous ne pouvez pas "convertir une chaîne de caractères UTF-8".
OriginalL'auteur YoBre | 2014-05-29
Vous devez vous connecter pour publier un commentaire.
Notez que lorsque vous appelez
text.getBytes()
sans arguments, vous êtes en fait un tableau d'octets représentant la chaîne dans votre plate-forme de l' encodage par défaut. Sur Windows, par exemple, il pourrait être un octet codant; sous Linux, il peut être en UTF-8 déjà.Pour être correct, vous devez spécifier exacte de l'encodage en
getBytes()
appel de méthode. Pour Java 7 et plus tard ce faire:Pour Java 6 ce faire:
Puis
bytes
contiendra codé en UTF-8 de texte.OriginalL'auteur Vladimir Matveev
Il suffit de régler la JVM du
file.encoding
paramètreUTF-8
comme suit:Il permet de s'assurer que
UTF-8
est le codage par défaut.À l'aide de
scala
il pourrait êtrescala -Dfile.encoding=UTF-8
.OriginalL'auteur Nitul