JDBC:渲染丹麦语特定字符时出现问题:Ø、Å、Æ
JDBC: Issue with rendering Danish specific characters: Ø,Å,Æ
问题:
丹麦语特定字符显示不正确(作为不可读字符)
鉴于:
数据库为 Microsoft SQL server 2019
,数据库排序规则为:Danish_Greenlandic_100_CS_AS
。数据已经存储在 Varchar 列类型中,数据已经存在;更改排序规则或任何数据修改都是不合适的。我没有插入数据,只是读取它们(一种报告功能)。
在我的本地机器上一切正常,但是在暂存环境中丹麦字符编码不正确。
连接初始化片段
Properties props = new Properties();
props.put ("charSet", "UTF-8");
props.put("username", "dbusername");
props.put("password", "secret");
try (Connection con = getConnection(repositoryUrl, props);
PreparedStatement preparedStatement = con.prepareStatement(sqlQuery)
) {
读取数据片段:
ResultSet rs = //getResultSet
while (rs.next()) {
Map<String, String> rowEntry = new LinkedHashMap<>();
for (int i =0; i < columnCount; i++ ) {
int columnIndex = i+1;
String value = rs.getString(columnIndex);
rowEntry.put(columnName, value);
}
result.add(rowEntry);
}
问题可能与在 MacOS(默认情况下,UTF-8
)、本地笔记本电脑和 Windows(cp-1252
或某些变体)在暂存环境中。
虽然您在连接属性中指定了字符集 UTF-8,但问题可能与某种 post 处理有关。
事实上,正如问题评论中所指出的,服务器响应和日志文件都是上述字符集问题的典型示例。
请查看每个环境中 JVM 中的字符集:如有必要,请查看并调整 file.encoding
系统 属性 在您的笔记本电脑和暂存环境中的值,也许它会给你一些关于问题的见解并帮助你解决问题。
因此,为了解决您的问题,请尝试添加 file.encoding
JVM 参数,同时 运行 您的应用程序:
java -Dfile.encoding=UTF=8 -jar your_app.jar
问题: 丹麦语特定字符显示不正确(作为不可读字符)
鉴于:
数据库为 Microsoft SQL server 2019
,数据库排序规则为:Danish_Greenlandic_100_CS_AS
。数据已经存储在 Varchar 列类型中,数据已经存在;更改排序规则或任何数据修改都是不合适的。我没有插入数据,只是读取它们(一种报告功能)。
在我的本地机器上一切正常,但是在暂存环境中丹麦字符编码不正确。
连接初始化片段
Properties props = new Properties();
props.put ("charSet", "UTF-8");
props.put("username", "dbusername");
props.put("password", "secret");
try (Connection con = getConnection(repositoryUrl, props);
PreparedStatement preparedStatement = con.prepareStatement(sqlQuery)
) {
读取数据片段:
ResultSet rs = //getResultSet
while (rs.next()) {
Map<String, String> rowEntry = new LinkedHashMap<>();
for (int i =0; i < columnCount; i++ ) {
int columnIndex = i+1;
String value = rs.getString(columnIndex);
rowEntry.put(columnName, value);
}
result.add(rowEntry);
}
问题可能与在 MacOS(默认情况下,UTF-8
)、本地笔记本电脑和 Windows(cp-1252
或某些变体)在暂存环境中。
虽然您在连接属性中指定了字符集 UTF-8,但问题可能与某种 post 处理有关。
事实上,正如问题评论中所指出的,服务器响应和日志文件都是上述字符集问题的典型示例。
请查看每个环境中 JVM 中的字符集:如有必要,请查看并调整 file.encoding
系统 属性 在您的笔记本电脑和暂存环境中的值,也许它会给你一些关于问题的见解并帮助你解决问题。
因此,为了解决您的问题,请尝试添加 file.encoding
JVM 参数,同时 运行 您的应用程序:
java -Dfile.encoding=UTF=8 -jar your_app.jar