我使用Java/Jsp开发了一个web应用程序,该应用程序运行在带有Tomcat 8的Ubuntu14.04 LTS服务器上,下面的UTF-8编码问题与部分符号§apperas有关。
在服务器端输入的任何章节符号§都将转换为§,我不知道为什么。
简单系统输出:
Should Print [§] - [output]: § Char: § ASCII 167
HTML/客户端是正常的,因为wireshark跟踪向我显示了正确的字符被传送到服务器。所以问题一定出在tomcat服务器本身。
以下内容已经设置好:
- 设置JSP编码,HTML5编码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <meta charset="utf-8" />
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set CharSet to UTF-8 response.setContentType("text/html; charset=UTF-8"); response.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8");
locale -a C C.UTF-8 en_US.utf8 POSIXenv JAVA_OPTS="-Djava.awt.headless=true - Djava.security.egd=file:/dev/./urandom - Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8" env CATALINA_OPTS="-Xms512M -Xmx1024M -server -XX:+UseParallelGC - Dfile.encoding=UTF-8"
服务器GET的xml-In连接器标记(与我无关)添加了“URIEncoding”属性作为
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
和未注释web.xml内的UTF-8过滤器
<filter> <filter-name>setCharacterEncodingFilter</filter-name> <filter- class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> <init-param> encoding</param-name> UTF-8</param-value> </init-param> <async-supported>true</async-supported> </filter>
现在我没有主意了,希望得到一些有用的提示:)
谢谢
编辑:似乎任何UTF-8代码
U+00A1 ¡ c2 a1 INVERTED EXCLAMATION MARK U+00A2 ¢ c2 a2 CENT SIGN U+00A3 £ c2 a3 POUND SIGN U+00A4 ¤ c2 a4 CURRENCY SIGN ... Sysout: ¡ ¢ ã ä...
编辑:
我尝试了我找到的任何东西,但它仍然不起作用:System.properties()返回以下内容。也许有人有另一种想法。
logger.debug("SETTINGS: " + System.getProperties() ); ... file.encoding.pkg=sun.io javax.servlet.request.encoding=UTF-8 sun.jnu.encoding=ANSI_X3.4-1968 file.encoding=UTF-8 sun.io.unicode.encoding=UnicodeLittle ....
在jsp的顶部:
<%@page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
%><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
(恐怕情况已经如此。)在浏览器中检查页面编码和HTML源文本。
我想知道是否有人能帮忙,我很难将UTF-8字符发布到SagePay。数据库是MySQL,带有数据库字符集utf8和数据库排序规则utf8_general_ci。数据库连接字符串使用useUnicode=true 所有发布到数据库的数据都存储为UTF-8,所有查询的数据都显示为UTF-8,但当字符串编码如下时: 然后发到SagePay,他们会收到一个来自国际字符所在位置的乱码字符串。如果字符串中不包
我在将文本从UTF-8编码转换为UTF-8编码时遇到问题。这里有字节数组, 我正在将其转换为UTF-8字符串并返回字节数组, 据我所知,这是一个3字节的数组。正当但这是我得到的。 这是什么原因?据我所知,在UTF-8 Specials中,2391189组合被称为替换字符。 这也是一个更大问题的一部分。
问题内容: 使用UTF-8编码创建字符串时存在不一致的地方。 运行此代码: 在Java 1.8.0_20(及更早版本)上,我们得到结果 在Java 1.7和1.6上,我们得到正确的结果: 您遇到此错误了吗?有没有解决方法? 对于Shift_JIS,JIS_X0212-1990,x-IBM300,x-IBM834,x-IBM942,x-IBM942C,x-JIS0208来说,这种不一致也很明显,但显
问题内容: 我使用Jersey 1.11做了一个小型Rest Web服务。当我调用返回Json的url时,非英文字符的字符编码存在问题。Xml的相应网址(“ test.xml”在开始的xml-tag中使其成为utf-8。 如何使网址“ test.json”返回utf-8编码的响应? 这是该服务的代码: 这是服务使用的pojo: 问题答案: Jersey在默认情况下应始终生成utf-8,听起来像是您
问题内容: 我想从请求中获取参数(带有重音符的字符),但是它不起作用。我尝试使用,但也没有用。 我知道返回正确的字符,但不起作用! 有人有主意吗? 问题答案: Paul的建议似乎是最好的做法,但如果要解决此问题,则根本不需要URLEncoder或URLDecoder: 更新: 由于获得了很多选票,我想强调BalusC的观点,即这绝对不是解决方案。充其量是一种解决方法。人们不应该这样做。 我不知道是
问题内容: 我正在用python做一些脚本。我创建一个保存在文件中的字符串。这个字符串有很多数据,来自目录的树状结构和文件名。根据convmv的介绍,我所有的树状结构都是UTF-8。 我想将所有内容都保留在UTF-8中,因为之后我将其保存在MySQL中。现在,在UTF-8的MySQL中,我遇到了一些字符问题(例如é或è-我是法语)。 我希望python始终将字符串用作UTF-8。我在互联网上阅读了