我正在做一種迂迴實驗的事情,我從遠程頁面的表格中提取數據以將其轉化爲ICS,以便我可以找出此運動隊何時正在玩(因爲我找不到任何地方信息比本表更容易獲得),但這只是給你一些背景。爲什麼PHP的utf8_encode會破壞我的utf-8字符串?
我使用cURL拉取這些數據並使用domDocument
解析它。然後我拿它並解析它以獲取我需要的信息。反對的球隊給了我麻煩。當我在初始PHP頁面上顯示數據時,它是正確的。但是,當我寫入ICS文件時,特殊的UTF-8字符會混亂。我認爲utf8_encode
可以解決這個問題,但實際上它似乎有相反的效果:當我在我的數據上運行該功能時,甚至是顯示在頁面上的東西(它已正確顯示),而不是在單獨的ICS文件中寫錯了),是不正確的。舉一個例子:它將「Inđija」變成「InÄija」。
只要在PHP中處理UTF-8字符串,任何提示或資源?我的服務器(遠程主機)也沒有安裝mbstring
,這很痛苦。
就像我說過的,đ(d通過它的一條直線,dj)變成了Ä(有時另一個角色出現在這個旁邊,這取決於我在哪裏看到它)。我是否UTF8_encode呢。 – 2010-10-07 16:54:05
另外č和Č正在變成Ä。看起來每個帶有變音符號的字符(這是來自拉丁塞爾維亞語)正在變成Ä。 – 2010-10-07 16:56:24
你在讀什麼ICS文件?您是否嘗試過在開始時編寫BOM? – 2010-10-07 17:13:42