我正在使用Java页面,在从我的应用程序中插入数据时遇到排序规则问题。我的插入代码如下所示:
<%@page import="java.sql.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<% Class.forName( "com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/myapp", "root", "");
Statement st=con.createStatement();
ResultSet rs;
st.executeUpdate("insert into table values (default,1,2,šđžćč)"); %>在我的数据库中,结果看起来像这个š?ž?(这样他就能看懂两个字母,但不是全部)。怎样才能把所有的字母都放在我的数据库里呢?
编辑:我可以通过phpmyadmin插入这些字符的数据,但是我不能从.jsp文件到数据库。就像jsp文件上的charset = utf-8不能工作一样。
发布于 2015-07-30 06:28:33
从旧路径添加到我的连接中解决的问题
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/myapp", "root", "");至
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/myapp?useUnicode=true&characterEncoding=UTF-8", "root", "");发布于 2015-07-30 04:15:26
问号来自于此:
SET NAMES同意客户端的编码(很好),但是CHARACTER SET不包括预期的字符(坏)。示例:
latin1只处理西欧字符;尝试将东欧字符或任何亚洲字符放入其中是不合适的。latin2和cp1250可以处理捷克语,所以它们之间的转换基本上是可以的,但它们与latin1之间的转换却不是这样。utf8mb4是utf8的超集。将utf8字符放入utf8mb4是可以的,但反过来会导致'?‘在某些情况下。被转换成“?”的角色无法从表中恢复。
如何修复未来的INSERTs
utf8mb4可能在所有情况下都有效。CHARACTER SET。只有一些字符是? (在š?ž??中)的原因是因为šž存在于latin1中,而其他字符则不存在。
底线:更改表定义中的CHARACTER SET。
https://stackoverflow.com/questions/31700235
复制相似问题