On 28 July 2017 21:53:27 BST, "Konstantin Preißer" <kpreis...@apache.org> wrote:
>Hi all,
>
>after quite a while I'm reporting back here, because I faced a problem
>after updating to Tomcat 8.5.19: Suddenly, static text files (.txt, .js
>etc.) encoded with UTF-8 (without BOM) are getting corrupted when they
>are served to the browser. This didn't happen with Tomcat 8.5.16.
>
>To reproduce (I'm using Windows 10 Creators Update with Java
>1.8.0_141):
>
>1) Download apache-tomcat-8.5.19-windows-x64.zip and extract it
>2) Open Notepad++ [1] and paste the text "Aß" (without quotes) in a new
>text file. In the Encoding menu, select "UTF-8 without BOM" (if not
>already selected) and then save the textfile in the Tomcat directory to
>"webapps/ROOT/test.txt".
>3) Verify with a hex editor that the text file contains the following 3
>bytes: 0x41 0xC3 0x9F
>4) Now use a browser or some other download tool to make a request to
>"http://localhost:8080/test.txt"; and save the text file.
>5) Open the file with a hex editor and notice that the last byte has
>changed: 0x41 0xC3 0x3F
>This means UTF-8 decoding will fail as the last byte does not have set
>the highest bit any more.
>
>In my case, this problem caused string from (UTF-8) JavaScript files
>being displayed incorrectly in the browser.
>
>If you do the same with Tomcat 8.5.16, you can see that the text file
>is served correctly.
>(Additionally, I found that Tomcat 8.5.19 uses "Transfer-Encoding:
>chunked" to serve the file, instead of using a "Content-Length: 3"
>header as Tomcat 8.5.16.)
>
>Why would Tomcat want to modify static files, instead of just serving
>them as-is?

Because Tomcat now checks the response encoding and the file encoding and 
converts if necessary.

You probably want to set the fileEncoding init param of the Default servlet to 
UTF-8.

Mark


>Note: Bisecting shows that the problem seems to have been introduced
>with r1800455 [2].
>
>Thanks!
>
>
>Regards,
>Konstantin Preißer
>
>[1] https://notepad-plus-plus.org/
>[2] https://svn.apache.org/viewvc?view=revision&revision=r1800455
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>For additional commands, e-mail: users-h...@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to