xmlを生成する必要があるサービスがあります。現在、私はStringWriterを使用してxmlを作成するためにjaxbとMarshallerを使用しています。javax.xml.bind.Marshaller 10進値でUnicode文字を符号化する
ここに私が得ている現在の出力があります。
<CompanyName>Bakery é &</CompanyName>
これは一部のWebサービスでは問題ありませんが、特別なユニコード文字をエスケープする必要があります。
<CompanyName>Bakery é &</CompanyName>
私はcommons-lang
からStringEscapeUtils
を使用している場合は、私がfollwingのようなもので終わる:私のxmlをcomsumingされるサービスは、これを持っている必要があります。この1も動作しません:
<CompanyName>Bakery &#233; &amp;</CompanyName>
は私が彼らの小数値としてこれらの特殊文字をエンコードすることができますマーシャラーのためのいくつかの設定がありますか?
é(U + 00E9)はISO-8859-1でサポートされているため、US-ASCIIが優れています。 – McDowell
合意しました、ありがとう-Ed –
私は別のスレッドを開始する必要がありましたが、提案されたロジックを考えて、ユーロシンボルはに置き換えられ、それもxmlに入りますが、ブラウザでは、何も表示されません。 私はこの理由を知っています。たとえエンコーディングがUS-ASCIIとして指定されていても、ブラウザはUnicode文字としてNumeric文字参照(例えば、)を扱います。 私たちはUS-ASCII ""を送信しますが、それはUTF-8と解釈され、制御文字になります。 –