Yes. It works. The source code is like:
response.setContentType("application/msword; charset=UTF-8");
response.setCharacterEncoding("utf-8");
java.io.PrintWriter out = response.getWriter();
out.println(outLine);
out.close();
Thanks a lot!!!
Just curious why I don't need to do setCharacterEncoding when I do
response.setContentType("text/xml; charset=UTF-8");
Laurie Harper wrote:
>
> sc wrote:
>> There is an earlier post
>> http://mail-archives.apache.org/mod_mbox/struts-user/200603.mbox/[EMAIL
>> PROTECTED]
>> My problem is pretty much the same as described. But there is no soluton
>> to
>> it.
>>
>> My application is Tomcat + Struts.
>> In the struts action class, I generates a WordML xml and the browser
>> starts
>> a word. The word document may contain Chinese character. My source code
>> is
>> something like:
>>
>> response.setContentType("application/msword; charset=UTF-8");
>> java.io.PrintWriter out = response.getWriter();
>> out.println(outLine);
>> out.close();
>>
>>
>> outLine is a big string, with the first 2 lines as the following:
>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>> <?mso-application progid="Word.Document"?>
>>
>>
>> Now the weird thing is when I run this on my desktop, with Chinese
>> Windows
>> XP installed. Everything is fine. But when I run this on a production
>> server
>> with English version Windows 2003 installed, all chinese characters are
>> displayed as ??.
>>
>> After I changed the code to:
>> response.setContentType("text/xml; charset=UTF-8");
>> regardless of where I run the application, it can correctly display
>> chinese
>> characters, though in a text version.
>
> It sounds like you've answered your own question. Your first code
> fragment writes out an XML document that declares its character encoding
> as UTF-8, but you don't have any code to ensure the response uses that
> encoding.
>
> Calling setContentType() is only part of the correct solution, though.
> You should also call setCharacterEncoding() on the response.
> setContentType() helps the user agent (browser, etc.) to figure out what
> character encoding it should assume is in use; setCharacterEncoding()
> ensures that a particular encoding *is* used. The 'encoding' attribute
> in your XML declaration must then match that encoding.
>
> HTH,
>
> L.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
--
View this message in context:
http://www.nabble.com/WordML-encoding-problem-tf3833007.html#a10866269
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]