Pregunta

Trato archivo de proceso que Escrito por símbolos ruso. Cuando se lee el texto y después de escribir en el archivo me sale algo como:

"\ 160 \ 192 \ 231 \ 229 \ 240 \ 225 \ 224 \ 233 \ 228 \ 230 \ 224 \ 237"

¿Cómo puedo conseguir símbolos normales?

Gracias

¿Fue útil?

Solución 3

He conseguido el éxito.

{-# LANGUAGE ImplicitParams #-}

import Network.HTTP
import Text.HTML.TagSoup
import Data.Encoding
import Data.Encoding.CP1251
import Data.Encoding.UTF8

openURL x =  do 
        x <- simpleHTTP (getRequest x)
        fmap (decodeString CP1251) (getResponseBody x)

main :: IO ()
main = do
    tags <- fmap parseTags $ openURL "http://www.trade.su/search?ext=1"
    let TagText r  = partitions (~== "<input type=checkbox>") tags !! 1 !! 4
    appendFile "out" r

Otros consejos

Si usted está recibiendo cadenas con barras invertidas y números en, a continuación, suena como que podría estar llamando "imprimir" cuando se quiere llamar "putStr".

Si usted trata con Unicode, puede intentar utf8- paquete de cadena

import System.IO hiding (hPutStr, hPutStrLn, hGetLine, hGetContents, putStrLn)
import System.IO.UTF8
import Codec.Binary.UTF8.String (utf8Encode)
main = System.IO.UTF8.putStrLn "Вася Пупкин"

Sin embargo, no funcionaba bien en mis ventanas CLI garbling la salida debido a la página de códigos. Espero que funcione bien en otros sistemas similares a Unix si el entorno local se ha ajustado correctamente. Sin embargo escrito al archivo debe ser exitosa en todos los sistemas.

ACTUALIZACIÓN:

Un ejemplo en codifica uso paquete.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top