Java 为什么我必须在请求中设置utf8?

Java 为什么我必须在请求中设置utf8?,java,mysql,jpa,netbeans,utf-8,Java,Mysql,Jpa,Netbeans,Utf 8,在netbeans 8.0.2项目和glassfish服务器开源版本4.1中,我将servlets和JPA与entityManager和JDK 1.8一起使用 我的netbeans项目源设置为utf8 我的MySQL数据库设置为utf8-默认排序规则,我的所有表也设置为utf8 当我插入新数据时,我的表中会出现garbarge字符 我在glassfish-ressource.xml中有这些属性 <jdbc-connection-pool allow-non-component-caller

在netbeans 8.0.2项目和glassfish服务器开源版本4.1中,我将servlets和JPA与entityManager和JDK 1.8一起使用

我的netbeans项目源设置为utf8

我的MySQL数据库设置为utf8-默认排序规则,我的所有表也设置为utf8

当我插入新数据时,我的表中会出现garbarge字符

我在glassfish-ressource.xml中有这些属性

<jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="mysql_mysql_rootPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
    <property name="serverName" value="localhost"/>
    <property name="User" value="root"/>
    <property name="Password" value="root"/>
    <property name="URL" value="jdbc:mysql://localhost:3306/miniwiki?zeroDateTimeBehavior=convertToNull&amp;useUnicode=yes&amp;characterEncoding=UTF-8"/>
    <property name="driverClass" value="com.mysql.jdbc.Driver"/>
</jdbc-connection-pool>
我所有的html页面都设置为utf-8

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8"></meta>
    <meta content="IE=edge" http-equiv="X-UA-Compatible"></meta>
    <meta content="width=device-width, initial-scale=1" name="viewport"></meta>
    <meta content="" name="description"></meta>
    <meta content="" name="author"></meta>
    <link href="../../favicon.ico" rel="icon"></link>
我所有的.jsp页面都以

<%@page contentType="text/html" pageEncoding="UTF-8"%>
我的日志详细信息行

配置:已连接:jdbc:mysql://localhost:3306/miniwiki?zeroDateTimeBehavior=convertToNull&useUnicode=yes&characterEncoding=UTF-八,


我错过了什么

您还可以添加服务器Java VM的语言参数吗?如果你有…那和JPA有什么关系?如果您的servlet需要utf8,请将您的问题限制在以下范围内:我提供了最大限度的详细信息以避免有关环境的问题。我的服务器java jm的语言参数为fr_fry。您不必设置utf8。您必须设置用于编写请求的任何字符集。您还可以添加服务器Java VM的语言参数吗?如果你有…那和JPA有什么关系?如果您的servlet需要utf8,请将您的问题限制在以下范围内:我提供了最大限度的详细信息以避免有关环境的问题。我的服务器java jm的语言参数为fr_fry。您不必设置utf8。您必须设置用于编写请求的任何字符集。您还可以添加服务器Java VM的语言参数吗?如果你有…那和JPA有什么关系?如果您的servlet需要utf8,请将您的问题限制在以下范围内:我提供了最大限度的详细信息以避免有关环境的问题。我的服务器java jm的语言参数为fr_fry。您不必设置utf8。您必须设置用于编写请求的任何字符集。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8"></meta>
    <meta content="IE=edge" http-equiv="X-UA-Compatible"></meta>
    <meta content="width=device-width, initial-scale=1" name="viewport"></meta>
    <meta content="" name="description"></meta>
    <meta content="" name="author"></meta>
    <link href="../../favicon.ico" rel="icon"></link>
<%@page contentType="text/html" pageEncoding="UTF-8"%>