2016-05-21 10 views
1

zu speichern Ich bin Geting Daten als ¥ à¤¨à ¥ à¤à¤ ° à¤¨à ¥ in mysql gespeichert. Es funktioniert gut in localhost, aber in remote mysql (in Plesk) funktioniert es nicht. Ich habe folgendes verwendet:nicht in der Lage, Hindi-Text in mysql mit Java

request.setCharacterEncoding("UTF-8"); 
response.setCharacterEncoding("UTF-8"); 

in Servlets und

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/projectkkm?useUnicode=yes&characterEncoding=UTF-8","root",""); 

in Datenbankverbindung

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

in jsp

nun laut meinen Recherchen fand ich, dass das Problem ist in Java. Java für Linux nicht unterstützen hindi Text url sehen: http://www.oracle.com/technetwork/java/javase/javase7locales-334809.html

see this snapshot from oracle

In meinem localhost (Windows) seine Arbeit gut, aber wenn ich sie auf die Plattform CentOS (Linux) bereitstellen seine nicht funktioniert. Ich denke, das Problem kann in Windows/Linux-Kompatibilität sein.

Kann mir jemand helfen, damit umzugehen. Ich bin mir sicher, dass das Problem nicht von Mysql Seite ist.

+0

So ein großen quest explored mysql encoding/charset/collation options beginnt – strangeqargo

+0

Sind Sie sicher, dass das Anfrageobjekt UTF ist? -8 codiert? Dump die Header und sehen. Überprüfen Sie auch die Codierung für alle Felder, sie könnten unterschiedlich codiert sein. – markspace

+0

Was ist die MySQL-Version? –

Antwort

0

Scheint wie Ihre remote db nicht richtig konfiguriert ist.

SHOW VARIABLES LIKE 'char%'; 

zeigen sollte

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  

Wenn nicht, sollten Sie beheben /etc/mysql/my.cnf

fügen Sie die folgenden Konfigurationen im Abschnitt [mysqld]

character-set-server = utf8 
init-connect='SET NAMES utf8' 
collation-server=utf8_general_ci 

in die Abschnitte [client] und [mysqldump] einfügen:

default-character-set=utf8 

Neustart mysql nach diesen

1

Versuchen Hinzufügen

<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> 

in web.xml

+0

funktioniert nicht ... Fehler beim Deployment erhalten – abhi169jais

+0

Welchen Web-Container verwenden Sie? Ich nahm Tomcat an, also wird diese Klassendatei vom Behälter zur Verfügung gestellt. Wenn der Container anders ist, wird die Bibliotheksdatei für diesen Container spezifisch sein. Oder Sie sollten das Jar mit dieser Klasse einschließen. – kundan3312143

+0

Ich benutze Apache Tomcat – abhi169jais

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

Verwendung obiger Code in Ihrer Tomcat Apache-Server-Konfigurationsdatei