String departmentName = request.getParameter("dept_name"); departmentName = new String(departmentName.getBytes(Charset.forName("UTF8")),"UTF8"); System.out.println(departmentName);//O/p: composés
在Windows中,所显示的输出是我所期望的,并且也在部门名称匹配标准中获取logging。
但在Linux中,它返回“compos ?? s”,所以我的数据库查询失败。
谁能给我解决scheme?
Eclipse – parseSdkContent失败错误 – 不识别XML文件
$不被识别为内部或外部命令
Java自动调整到Windows 7的字体大小调整
64位版本的Java 1.4.2 for Windows?
Bash命令检查在Linux上是否安装了Oracle或OpenJDK Java版本
如何用Java发现文件的创build时间?
用Java分叉和放弃特权
从Java运行Echo
bluecove能用Linux 64位吗?
Java – String.contains()行为奇怪
也许是因为字符集UTF8不存在。 您必须使用UTF-8 。 看到javadoc 。
首先,使用unicode输出与System.out.println是不好的指标,因为你正在处理控制台编码。 使用OutputStreamWriter打开文件,将编码的解码设置为UTF-8,然后可以说请求参数是否正确编码。
其次,可能存在数据库连接编码问题。 对于MysqL,您需要明确指定连接字符串中的编码方式,而对于其他情况,也可能是在未指定时采用默认系统编码。
首先,试图找出你在每个特定地方的编码。
例如,如果您的Linux系统使用UTF-8字符集运行,字符串可能已经具有正确的编码; 那个黑客可能只在Windows上需要。
最后但并非最不重要的,你怎么知道这是不正确的? 这不是你的观众是不正确的? 你的控制台或日志查看器使用什么字符集?
您需要执行一些检查,以确定编码与应用程序当前的预期编码不同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。