gpt4 book ai didi

java - 特殊字符不一致

转载 作者:行者123 更新时间:2023-11-29 04:02:13 26 4
gpt4 key购买 nike

您好,我正在构建一个在 Tomcat 6.0.20 和 JDK 1.6.0_19 上运行的 Spring MVC Web 应用程序。当我通过 HTML 表单发送一些特殊字符时,其中一些被存储为问号?

例如,这些符号已正确存储:€、á、é、í、‰ 等但是有些符号被替换为?喜欢:₤,♪,☺

MySQL 表字符集是 utf-8。我的jsp也是用utf-8

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

我按照建议在 web.xml 中包含了 org.springframework.web.filter.CharacterEncodingFilter here

当我使用 firebug 发送 3 个字符 €a₤ 调试 POST 请求时,我得到:%E2%82%ACa%E2%82%A4 这是正确的,因为 E2 82 AC 是 € 的代码,E2 82 A4 是₤ 的代码,但 ₤ 存储为?在数据库中。当我将 ₤ 直接保存到数据库中时,它会在网页中正确显示。

我该如何解决这个问题?

最佳答案

有几个区域您需要检查字符编码是否正确完成,因为一些默认为 UTF-8 而其他则没有(例如,iso-8859-1)。检查:

  • JDBC 驱动程序
  • Java 虚拟机(只能解析基于拉丁语和 unicode - 可以运行 native2ascii 将非拉丁字符转换为 unicode)
  • 数据库编码
  • Tomcat/JBoss 等(服务器)
  • 浏览器
  • 操作系统

必须检查所有这些东西让人头疼,但总得有人去做。我建议将所有内容都设置为 UTF-8,因为这是人们普遍同意的

在我看来,JVM 或您的 JDBC 驱动程序可能是问题的根源

关于java - 特殊字符不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2706100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com