0
我有以下文字:轉換怪異字符在Perl
E=MC²
我有以下代碼:
$xml.=" <author initial=\"EM\"><![CDATA[E=MC²]]></author>\n";
出於某種原因,當我嘗試用這裏面的XML,它拋出這樣的:
This page contains the following errors:
error on line 897 at column 36: Encoding error
我正在使用perl
來處理XML轉換。
在修復此問題的perl
代碼中,我需要做些什麼?
我不知道如何因爲即時通訊仍然相當新的perl的東西我會發布什麼香港專業教育學院做
您可能需要'使用utf8'編譯指示,因爲您的源代碼包含utf8編碼數據,您可能需要將正在編寫'$ xml'的句柄設置爲'binmode'。我假設這是在一個CGI程序中,所以你至少必須做'binmode STDOUT'。此外,請確保您的XML具有正確的字符集信息。沒有關於你的程序的更多信息,很難說。你可以創建一個能夠重現這一點的[mcve]。 – simbabque
沒有編碼的庫嗎?我不應該這樣做。我應該能夠通過某種編碼操作來傳遞此字符,而不必修改我的代碼的體系結構。 – jkushner
你不需要一個庫。你需要正確編寫你的程序。如果你的源代碼包含utf8字符,你需要告訴Perl。當然,您可以將每個字符轉換爲帶有一些庫的html實體,但是您不需要CDATA。那件事的想法是,你可以從字面上得到你想要的東西。但是你需要告訴Perl什麼編碼你的輸出。這與你的_架構_完全無關。請創建一個[mcve]。用目前的描述來回答你的問題是不可能的。 – simbabque