【发布时间】:2012-10-01 06:31:46
【问题描述】:
我有一个 RESTful 服务,它要求请求中有一个字符串。从浏览器传递字符串时,重音字符会出现乱码 (�),因为默认浏览器编码是 ISO-8859-1。如果我将浏览器编码更改为 UTF-8,重音字符会保留在请求字符串中。
有没有办法在服务器端更改字符串编码并以 UTF-8 重新构造字符串,这样我就不需要每次都更改浏览器编码?
谢谢
【问题讨论】:
-
带有表单的页面应该在 HTTP 标头的元标记中指定编码。如果您的用户需要从浏览器菜单中手动更改编码,那您就大错特错了。
-
您确定您没有得到相反的结果,并且浏览器正在向您发送 UTF-8 内容吗?大多数浏览器默认发送 UTF-8 的内容,问题是 J2EE 规范说 java 中的默认编码是 ISO-8859-1,这引起了很多悲痛。
-
这不是 J2EE 规范,而是 HTTP 标准 - w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7.1
标签: java rest utf-8 jersey iso