Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用java在mysql中存储印地语文本_Java_Mysql_Centos_Java 7_Plesk - Fatal编程技术网

无法使用java在mysql中存储印地语文本

无法使用java在mysql中存储印地语文本,java,mysql,centos,java-7,plesk,Java,Mysql,Centos,Java 7,Plesk,我正在mysql中获取存储为¥a¥a¥a¥a¥a¥a¥a¥a¥a¥a¥的数据。它在localhost中运行良好,但在远程mysql(在plesk中)中不起作用。 我使用了以下方法: request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); 在servlet和 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/project

我正在mysql中获取存储为¥a¥a¥a¥a¥a¥a¥a¥a¥a¥a¥的数据。它在localhost中运行良好,但在远程mysql(在plesk中)中不起作用。 我使用了以下方法:

 request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
在servlet和

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/projectkkm?useUnicode=yes&characterEncoding=UTF-8","root","");
在数据库连接中

<%@page pageEncoding="UTF-8" %>

在jsp中

现在根据我的研究,我发现问题出在Java中。 java for linux不支持印地语文本请参阅url:

在我的本地主机(Windows)中,它可以正常工作,但当我将它部署到centos(linux)平台时,它就不工作了。 我认为问题可能在于Windows/linux的兼容性


有人能帮我处理这件事吗。我确信问题不是来自mysql方面。

似乎您的远程数据库配置不正确

SHOW VARIABLES LIKE 'char%';
应该显示

character_set_client      utf8                     
character_set_connection   utf8               
character_set_database      utf8                
character_set_filesystem  binary                    
character_set_results        utf8                        
character_set_server         utf8                        
character_set_system       utf8      
如果没有,您应该修复/etc/mysql/my.cnf

在[mysqld]部分添加以下配置

character-set-server = utf8
init-connect='SET NAMES utf8'
collation-server=utf8_general_ci
放入[client]和[mysqldump]部分:

default-character-set=utf8
然后重新启动mysql

尝试添加

<filter>
    <filter-name>setCharacterEncodingFilter</filter-name>
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>setCharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

setCharacterEncodingFilter
org.apache.catalina.filters.SetCharacterEncodingFilter
编码
UTF-8
setCharacterEncodingFilter
/*
在web.xml中


  <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8084" protocol="HTTP/1.1" redirectPort="8443"/>

在您的tomcat apache服务器配置文件中使用上述代码

开始探索mysql编码/charset/collation选项您确定请求对象是UTF-8编码的吗?转储标题并查看。还要检查任何字段的编码,它们可能编码不同。什么是MySQL版本?MySQL版本是5.6您使用的web容器?我假设tomcat,所以这个类文件是由容器提供的。如果容器不同,则库文件将特定于该容器。或者您应该包括包含这个类的jar。我正在使用ApacheTomcathen,jsp页面中是否缺少它。对我来说,mysql连接字符串是useUnicode=true&characterEncoding=utf-8。在你的版本中,在我的本地主机窗口平台中有“yes”而不是“true”,它工作正常,但是当我将它部署到centos(linux)时,它就不工作了