我對此很新穎,對大多數人來說這可能很容易,但我一直在爲此掙扎數日。如何使用perl存儲和顯示ISO-8859-1和UTF8字符
我在寫一個使用perl的web爬蟲,而web爬蟲將使用LWP和一些簡單的正則表達式來提取某些信息。
這些信息保存在一個mySQL數據庫中,該數據庫將用於android設備上。然而,當我測試網絡爬蟲時,我意識到一些信息使用HTML數字編碼(典 華),並且一些信息使用iso-8859-1編碼(Zhífú) 。 我使用PERL HTML :: Entities庫解析了中文零件,當我將控制檯設置爲utf8時,可以顯示它。但是,其他字母(Zhífú)只能在iso-8859-1中顯示。如果我試圖用utf8顯示它,它將變成Zh f 。我的問題是:
- 我怎麼能確定哪種類型的編碼用它的,我怎麼能顯示不同的看法?
- 我可以直接將它存儲在mySQL中,或者我應該先處理這些信息(如果我錯了,請糾正我,但我的理解是mySQL使用utf8作爲默認語言)。
- 當我將它顯示在android設備上時會造成某種問題嗎?
非常感謝。
感謝您的幫助,但是,我意識到問題出在HTML :: Entities :: decode_entities函數中。只要字符串包含HTML數字編碼(典),字符串(Zhífú)的其餘部分就會在decode_entities後正確顯示。但是,如果字符串不包含HTML數字編碼,則字符串將顯示爲Zh f 。 – hook38
@ user898378,'decode_entities'沒有問題。您現在描述的內容表明您在程序中的某個位置沒有正確編碼輸出。請注意,當我說「解碼」和「編碼」時,我指的是字符編碼,如在Encode :: encode和Encode :: decode或等價物中。 – ikegami