سؤال

أحاول ملف العملية الذي كتبه الرموز الروسية. عند القراءة وبعد كتابة نص للملف ، أحصل على شيء مثل:

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

كيف يمكنني الحصول على رموز طبيعية؟

شكرًا

هل كانت مفيدة؟

المحلول 3

لقد حصلت على النجاح.

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

نصائح أخرى

إذا كنت تحصل على سلاسل مع عوامل تراجع وأرقام ، فيبدو أنك قد تتصل بـ "طباعة" عندما تريد الاتصال "Putstr".

إذا تعاملت مع Unicode ، فقد تحاول حزمة utf8 سلسلة

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

ومع ذلك ، لم ينجح بشكل جيد في Windows Cli الذي يتجول في الإخراج بسبب codepage. أتوقع أن تعمل بشكل جيد على أنظمة أخرى تشبه Unix إذا تم تعيين موقعك بشكل صحيح. ومع ذلك ، يجب أن تكون الكتابة إلى الملف ناجحة على جميع الأنظمة.

تحديث:

مثال على ترميز حزمة استخدام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top