作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了应用程序,我必须将用户保存在mysql中但是当用户在 mysql 中具有这样的名称“Michał”(带有波兰字符)时,他会像这样保存“Micha?”如何改变这个?在 mysql 中我有 enconding utf-8。
这是我的代码:
public void save() {
Connection conn = Main.getMySQL().getConnection();
if (conn == null) {
try {
conn = Main.getMySQL().openConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
PreparedStatement st = null;
StringBuilder query = new StringBuilder();
query.append("INSERT INTO `HelperTime` (`uid`, `name`,`time`,`idletime`) ")
.append("VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE ")
.append(" `uid`=VALUES(`uid`), `name`=VALUES(`name`), `time`=VALUES(`time`), ")
.append("`idletime`=VALUES(`idletime`)");
try {
st = conn.prepareStatement(query.toString());
st.setString(1, uid);
st.setString(2, name);
st.setLong(3, time);
st.setLong(4, idleTime);
st.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
Main.getMySQL().closeResources(null, st);
}
最佳答案
问号由此而来:
SET NAMES
与客户端的编码一致(很好),但是CHARACTER SET
不包含预期字符(错误)。示例:
latin1
仅处理西欧字符;试将东欧字符或任何亚洲字符放入它不适合。latin2
和 cp1250
可以处理捷克语,因此它们之间的转换大部分都可以,但不在它们和 latin1
utf8mb4
是 utf8
的超集。将utf8字符放入utf8mb4是可以的,反之亦然会产生一个“?”在某些情况下。转换为“?”的字符无法从表中恢复。
如何修复 future 的INSERT
?
utf8mb4
可能适用于所有情况。字符集
。编码:
HEX('Michał') is '4D69636861C582' 'C582' is utf8 for 'ł'
底线:更改表的字符集
。
关于java - 如何将特殊字符保存到字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31705646/
我是一名优秀的程序员,十分优秀!