JSON中的字符编码和MySQL

时间:2013-05-06 07:48:13

标签: java mysql json hibernate character-encoding

我有关于编码的问题。

我创建了一个包含一些文本的MySQL 5.5 DB。我还创建了一个Java Webservice,它创建了一个由Android应用程序读取的JSON。

我在DB中存储了文本,看起来不错,例如:

verwarm de oven voor op 210°C

但是当我在浏览器中检查JSON时,它看起来像这样(也在我的Android应用程序中)

{ “gerechtId”: “6”, “ID”: “13”, “laatsteUpdate”: “2013-02-14T15:53:42 + 01:00”, “文”: “verwarm de oven voor op 210°C”,“titel”:“烤箱voorverwarmen”,“volgNr”:“1”}

如您所见,温度显示我不喜欢的字符; - )

我该如何避免这种情况?

我正在使用Hibernate 3来读取数据库。这是我的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
    xmlns="http://java.sun.com/xml/ns/persistence"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence     http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd ">
    <persistence-unit name="LENGO" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <properties>

        <property name="hibernate.archive.autodetection" value="class, hbm"/>
        <property name="hibernate.connection.url" value="jdbc:mysql://62.213.197.17/lengotoo_autikoken?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>

    </properties>
</persistence-unit>
</persistence>

1 个答案:

答案 0 :(得分:0)

我这样解决了这个问题:

@Produces(MediaType.APPLICATION_JSON + "; charset=UTF-8")

而不是

@Produces(MediaType.APPLICATION_JSON)

在我的网络服务资源中。