簡體   English   中英

如何使用iconv for xsltproc將nonUTF-8字符轉換為UTF-8字符

[英]How to convert nonUTF-8 chars to UTF-8 chars with iconv for xsltproc

我正在嘗試使用xsltproc從xml文件中獲取數據,但是當我執行xsltproc時,我得到了一個解析器錯誤列表,向我顯示:

new_news.xml:388407:解析器錯誤:PCDATA無效的Char值26

new_news.xml:418521:解析器錯誤:PCDATA無效的Char值26

new_news.xml:1490882:解析器錯誤:PCDATA無效的Char值27ultan'ın

錯誤列表中的數字向我顯示了發生錯誤的xml文件的行號,並且我發現有一些非UTF8字符,例如ESC,SUB等。(。xml文件開頭具有UTF-8標記。由於是這種情況,我需要刪除(或替換)那些非UTF8字符。 去做這個:

我使用了iconv命令:

iconv -c -t UTF-8 <new.xml> new_news.xml

然后使用diff命令查看區別:

diff new.xml new_news.xml

但是它們之間沒有區別。 因此,給xsltproc命令new_news.xml時,我得到相同的錯誤。

你能幫我解決這個問題嗎? 我究竟做錯了什么? 順便說一下,我正在使用OsX終端。 我不知道iconv命令是否像sed和awk命令一樣有所作為。

最好的祝福

您的問題不是UTF-8,而是XML。 XML中不允許使用非打印字符,例如ESC或SUB。 如果您的文件包含它們,則它不是XML文檔。

在將文檔解析為XML並由XSLT處理器處理之前,您需要刪除有問題的字符或將其更改為其他字符。 更改文檔的編碼不會完成任何操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM