Frage

Ich versuche, Prozess-Datei, die von russischen Symbolen writen. Beim Lesen und nach dem Schreiben Text-Datei ich etwas bekommen wie:

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

Wie kann ich normale Symbole bekommen?

Danke

War es hilfreich?

Lösung 3

ich habe Erfolg.

{-# 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

Andere Tipps

Wenn Sie Strings mit Schrägstrichen und Zahlen immer in, dann klingt es wie Sie vielleicht calling „drucken“, wenn Sie anrufen mögen „putstr“.

Wenn Sie mit Unicode umgehen, Sie könnten versuchen, utf8- String-Paket

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

Allerdings hat es nicht funktioniert gut in meinem Windows-CLI entstellend die Ausgabe wegen der Codepage. Ich erwarte, dass es gut funktionieren auf andere Unix-ähnlichen Systemen, wenn Ihr Gebietsschema richtig eingestellt ist. Allerdings sollte schriftlich Datei erfolgreich auf allen Systemen sein.

UPDATE:

Ein Beispiel auf Paket Verwendung kodiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top