当前位置: 首页 > 面试题库 >

UTF-8与JPA和Glassfish 4.0

沈永新
2023-03-14
问题内容

我在使用UTF-8字符时遇到困难。这是一个简单的JSF项目。我使用JSF 2.2和Glassfish 4.0

我有一个去的方法:

em.persist(user);

当我调试时

user.getName()

在这一点上,我可以在我的IDE中看到utf-8字符。我也将字符串保留在会话中-bean,我也可以在浏览器中看到它们。

仅当它们持久化到数据库时,它们才持久化为:????????

我也可以自己编辑数据库并保存utf-8字符。我的意思是,我的SQL配置适合UTF-8。

问题出在JPA中。

这是我尝试过的:(加在一起:)

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <persistence-unit name="Persistence" transaction-type="JTA">
        <jta-data-source>fus</jta-data-source>
        <class>com.tugay.fup.core.model.User</class>
        <properties>
            <property name="javax.persistence.jdbc.url"
                  value="jdbc:mysql://localhost:3306/fus?useUnicode=yes&amp;characterEncoding=UTF-8"/>
        </properties>
    </persistence-unit>
</persistence>

这是glassfish-web.xml:

<glassfish-web-app>
    <parameter-encoding default-charset="UTF-8"/>
</glassfish-web-app>

我正在使用由容器管理的EntityManager(事务类型= JTA)

因此,在Glassfish的JDBC连接池中,我有:

jdbc:mysql://localhost:3306/fus?useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8

适用于:属性:URL …

但是这些都没有帮助。

静止字符不能正确保存。


问题答案:

这解决了它:

jdbc:mysql:// localhost:3306 / fus?useUnicode = true&characterEncoding =
UTF-8&characterSetResults = UTF-8

所以这是错误的:

jdbc:mysql:// localhost:3306 / fus?useUnicode = true&connectionCollat​​ion =
utf8_general_ci&characterSetResults = utf8



 类似资料:
  • 然而,这些都无济于事。 仍然没有正确保存字符。

  • 没有一行式解决方案。小心、注意细节,以及一致性。 PHP 中的 UTF-8 糟透了。原谅我的用词。 目前 PHP 在低层次上还不支持 Unicode。有几种方式可以确保 UTF-8 字符串能够被正确处理, 但并不容易,需要深入到 web 应用的所有层面,从 HTML,到 SQL,到 PHP。我们旨在提供一个简洁、 实用的概述。 PHP 层面的 UTF-8 基本的字符串操作,如串接 两个字符串、将字

  • 问题内容: 为什么sql数据库使用UTF-8编码?他们都使用8位来存储字符吗? 问题答案: UTF-8用于支持大范围的字符。在UTF-8中,最多可以使用4个字节来表示单个字符。 乔尔(Joel)撰写了一篇有关该主题的文章,您可能希望参考 每个软件开发人员绝对,肯定必须了解的Unicode和字符集的绝对最低要求(无借口!)

  • 2. Unicode和UTF-8 为了统一全世界各国语言文字和专业领域符号(例如数学符号、乐谱符号)的编码,ISO制定了ISO 10646标准,也称为UCS(Universal Character Set)。UCS编码的长度是31位,可以表示231个字符。如果两个字符编码的高位相同,只有低16位不同,则它们属于一个平面(Plane),所以一个平面由216个字符组成。目前常用的大部分字符都位于第一个

  • 问题内容: UTF-8和UTF-16之间的区别?我们为什么需要这些? 问题答案: 我相信Web上有很多关于此的好文章,但这是一个简短的摘要。 UTF-8和UTF-16都是可变长度编码。但是,在UTF-8中,字符可能至少占据8位,而在UTF-16中,字符长度以16位开始。 UTF-8主要优点: 基本ASCII字符(例如数字,不带重音的拉丁字符等)占据一个字节,与US-ASCII表示形式相同。这样,所

  • 嗨,我试图使我在UTF-8兼容的应用程序之一。我的环境如下:linux操作系统,apahce网络服务器作为超文本传输协议监听器,tomcat作为servlet引擎 配置了mod_jk和tomcat的apache s使用ajp连接器。 我已经从少数网站上阅读了UTF-8的基本指南,并根据建议尝试了以下方法 为服务器中的连接器设置和。xml 设置语言bashrc/. file使用 将apache服务器