2015-11-06 88 views
1

我需要沒有命名空間,並使用UTF-8無BOM允許WMS讀取文件創建一個文件使用UTF-8無BOM編碼。 (我需要添加的命名空間的映射,因爲目標架構是不是唯一的)如何刪除命名空間和一個XML

我創建一個自定義發送管道是組裝XML,然後刪除該命名空間(使用ESB刪除命名空間分量)

我在,我會承擔BOM應該被刪除,但是當我檢查出站文件,它已更改爲ANSI文件(但我說具體的編碼是在管道組件UTF-8)

的方式對其進行設置

我做錯了什麼?有更好的選擇嗎?

enter image description here

enter image description here

回答

3

管道組件可能是工作的罰款,並已經在做去除BOM和編碼成UTF-8的它的工作。

你的第二個屏幕截圖顯示記事本++。 Notepad ++的「Encode in」功能可讓您以特定的編碼顯示文件的內容。

但是它不是一個編碼檢測器。 檢測編碼可能是一項艱鉅的任務,尤其是當文件沒有BOM時,因爲某些編碼具有相似性(例如:UTF-8的128個第一個字符與ASCII相同)。

難道你的輸入文件實際上包含獨特的UTF-8編碼方式的任意字符?這可能是一個很好的測試。

+0

也可以嘗試在彙編(注意設置TargetCharSet:你要做到這一點在Visual Studio和部署,而不是在BizTalk管理控制檯,由於自2006年以來的BizTalk https://support.microsoft.com/en已知的bug -us/kb/939550) – Dijkgraaf

+0

對不起,回覆很慢。如果我使用我生成的輸出文件,系統會將其視爲一個「x」分隔文件。如果我使用記事本「轉換爲UTF-8」功能並重新運行文件,系統會將該文件視爲「xml文件」並完美運行。 Notepad ++也會將編碼從「UTF-8 - BOM」移動到「UTF-8」。 (我不知道這是否相關?) – Andy

+0

@安迪通過「系統」你的意思是任何系統消耗你輸出?您剛剛用Notepad ++描述的操作似乎只添加BOM。如果這種方式運行良好,爲什麼您最初想要刪除BOM? –