簡體   English   中英

XML文件(UTF-8)中的Oracle SQL XML冒犯字符

[英]Oracle SQL XML Offending characters in XML file (UTF-8)

我正在嘗試找到一種方法,可以從正在創建的Oracle SQL XML文件中替換/刪除有問題的字符。 XML文件的結構正確,但是由於XML文件中令人反感的字符,我發送文件的公司也無法加載文件。 我正在使用Oracle 11g第2版數據庫。

我該怎么辦,我有什么選擇?

下面的屏幕快照是這些令人討厭的字符的示例,我本人以及我發送文件的公司也都使用Unicode UTF-8編碼。

下面是ZOËWANAMAKER所不喜歡的標簽示例

<prodAssociatedParty>
    <apType>ACTOR</apType>
    <lastName>ZOË WANAMAKER</lastName>
</prodAssociatedParty>

Ë(0xCB),É(0xC9),Ï(0xCF),£(0xA3),Ç(0xC7),Ò(0xD2),Ü(0xDC)

在此處輸入圖片說明

在此先感謝您的任何建議。

顯然,您的XML文件具有<?xml version="1.0" encoding="UTF-8"?>作為聲明,但實際上它以不同的編碼存儲。

不要僅僅因為“每個人都這樣做”而用<?xml version="1.0" encoding="UTF-8"?>聲明您的XML文件。 如果聲明UTF-8,則還必須將其另存為UTF-8。 分別在編輯器中檢查保存選項。 在創建文件的應用程序中進行設置。

我假設XML文件以Windows-1252編碼保存。 嘗試使用<?xml version="1.0" encoding="ISO-8859-1"?> Windows-1252與ISO 8859-1非常相似,請參閱ISO 8859-1與ISO 8859-15與Windows-1252與Unicode,因此它應該可以工作,除非您的XML包含€ Š š Ž ž Œ œ Ÿ

但是,根據XML規范,僅UTF-8和UTF-16是必需的,ISO 8859-x是可選的,因此目標應用程序可能無法讀取該文件。 在這種情況下,您必須將XML文件轉換為UTF-8。

感謝您的回復。 最后,我將以下內容放到了PL / SQL中,就像你們中的一些人所說的那樣,即使您的SQL XML代碼中的版本為'1.0“ encoding =” UTF-8“,該文件仍以其他編碼形式存儲。我需要強制它以UTF-8格式寫入/存儲XML文件。

如果您查找DBMS_XSLPROCESSOR.clob2file,則有許多參數傳遞給此過程,其中一個是用於輸出文件的字符集。 在這種情況下,對於UTF-8,它是nls_charset_id('AL32UTF8')。

DBMS_XSLPROCESSOR.clob2file(l_clob, l_directory, l_file_name||'.xml',nls_charset_id('AL32UTF8'));

多謝你們

暫無
暫無

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

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