2016-06-13 6 views
0

ich alle notwendigen Änderungen für Datenbankvariable gemacht haben UTF8speichern Unicode-Codepoint statt HTML-Entities in mysql mit jsp

  • character_set_client utf8
  • character_set_connection utf8
  • character_set_database utf8
  • character_set_filesystem binäre
  • character_set_results utf8
  • character_se t_server utf8
  • character_set_system utf8

hinzugefügt Auch die den Tag auf jsp enthalten:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

Aber wenn ein nicht englischen Text wird in Form von HTML-Entities konvertierte und zu speichern eingegeben bekommen also #&number format

Ich möchte es in Unicode Codepunkt-Format wie \u6709 ohne java Code-Konverter-Programm eingeben:

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
</head> 
<body> 
    <form id="storeMsgForm" method="post" action="createnewmessage" > 
    <input type="text" name="msg_code"> 
    <input type="text" name="message"> 
    <input type="submit" id="saveEmployee" class="btn btn-primary" value="Save"> 
    </form> 

    <c:forEach var="listvalue" items="${allMsg.allmessage}"> 
    ${listvalue.msg_code} 
    ${listvalue.message} 
    <br/> 
    </c:forEach> 

<% 
if (request.getCharacterEncoding() == null) { 
     request.setCharacterEncoding("UTF-8"); 

    } 
    %> 
</body> 
</html> 

Antwort

0

Der Browser übersetzte die speziellen Unicode-Codepunkte in der Eingabe in HTML-Entitäten aufgrund der Form ein accept-charset von UTF-8 fehlen. Der Browser denkt, dass die Ergebnisse des geposteten Formulars nicht in UTF-8 für den Server sein können.

<form id="storeMsgForm" method="post" action="createnewmessage" accept-charset="UTF-8"> 
+0

Mit diesem speichert so etwas wie ¤¤àत¤¤¤¤à¤¾à¤à¤ ° à ¥. Ich will nur Unicode für den Text speichern, der durch Eingabe-Tags –

+0

eingegeben wird. Oben wird UTF-8 auf dem Server falsch empfangen. (Multibyte-Sequenzen, interpretiert als Latin-1 oder ähnliches.) Die Request-Codierung muss ebenfalls auf UTF-8 gesetzt sein. Dieses Thema wird im Stackoverflow behandelt. Sie sind also wirklich einen Schritt weiter. Es scheint, dass Ihr Versuch, die Codierung festzulegen, nicht erfolgreich war. –

0

Suche http://mysql.rjweb.org/doc.php/charcoll für Verweise auf Java und Spring und JSP.

sieht aus wie Mojibake für Devanagari; ist das die Sprache, die du benutzen willst? Wenn Sie versuchen, utf8/utf8mb4 zu verwenden, überprüfen Sie Folgendes, wenn Sie Mojibake sehen.

  • Die zu speichernden Bytes müssen utf8-codiert sein.
  • Die Verbindung, wenn INSERTing und SELECTing Text muss utf8 oder utf8mb4 angeben. Die Spalte muss CHARACTER SET utf8 (oder utf8mb4) lauten.
  • HTML sollte mit <meta charset=UTF-8> beginnen.
  • Verwenden Sie <form method="post" ... accept-charset="UTF-8">, wenn ein "Formular" beteiligt ist.