我有一個需要生成xml的服務。目前我正在使用jaxb和Marshaller使用StringWriter創建xml。javax.xml.bind.Marshaller編碼帶有十進制值的Unicode字符
這是我正在得到的當前輸出。
<CompanyName>Bakery é &</CompanyName>
雖然這可能適用於某些web服務,但我需要轉義特殊的unicode字符。即comsuming我的XML服務需要有這樣的:
<CompanyName>Bakery é &</CompanyName>
如果我使用StringEscapeUtils
從commons-lang
我結束了類似的follwing。這其中不也行:
<CompanyName>Bakery &#233; &amp;</CompanyName>
是否有現Marshaller,讓我來編碼這些特殊字符作爲其十進制值的一些設置?
ISO-8859-1支持'é'(U + 00E9),所以US-ASCII會更好。 – McDowell
同意,謝謝-Ed –
雖然我應該開始一個不同的線程,但只是想着,用已經建議的邏輯,歐元符號被替換爲,它也在xml中,但是當我嘗試看到它時在瀏覽器中,它什麼都不顯示。 我知道原因,即使編碼指定爲US-ASCII,瀏覽器也會將數字字符引用(如)視爲Unicode字符 - 無論您使用什麼編碼方式處理文檔。 因此,我們發送美國ASCII「」,但被解釋爲UTF-8,因此它成爲控制字符,這是一個「空白」。 –