Comment faire pour que Haskell ou ghci puissent montrer des caractères chinois et exécuter des caractères chinois nommés scripts?
je veux faire un script Haskell pour lire des fichiers dans mon dossier /home. Cependant, il y a beaucoup de fichiers nommés avec des caractères chinois, et Haskell et Ghci ne peuvent pas le gérer. Il semble que Haskell et Ghci ne sont pas doués pour afficher des caractères UTF-8.
Voici ce que j'ai rencontré:
Prelude> "让Haskell或者Ghci能正确显示汉字并且读取汉字命名的文档"
"753Haskell110773Ghci021491830174034721383182988835462721383629517340991723"
2 réponses
Prelude> putStrLn "753Haskell110773Ghci021491830174034721383182988835462721383629517340991723"
让Haskell或者Ghci能正确显示汉字并且读取汉字命名的文档
GHC gère unicode très bien. Voici ce que vous devez savoir à ce sujet:
il utilise l'encodage de votre système pour la conversion des octets en caractères et vice-versa lors de la lecture ou de l'écriture sur la console. Puisqu'il a fait la conversion des octets aux caractères correctement dans votre exemple, je dirais que votre encodage système est réglé correctement.
show
fonction String
a un jeu de caractères de sortie limité. show
la fonction est utilisée par GHCI pour imprimer le résultat de l'évaluation d'une expression, et par le print
fonction pour convertir la valeur transmise à un String
représentation.
putStr
et putStrLn
les fonctions sont pour écrire un String
pour la console exactement comme c'était prévu.
Merci à Carl, j'ai utilisé putStrLn
comme un enveloppant autour de mon fuction:
ghci> let removeNonUppercase st = [c | c <- st, c `elem` ['А'..'Я']]
ghci> putStrLn (removeNonUppercase "Ха-ха-ха! А-ха-ха!")
ХА
Tout fonctionne bien!