我在将一些波兰语数据(类似 ąćęłóżź 的字符)插入表格时遇到问题。我在表格中得到了一些奇怪的字符。在 jsp
文件中,我将页面编码设置为 utf 8。
Mysql worbench character-set-server
设置为 utf8
,数据库排序规则为 utf8_polish_ci
。
我还将 Windows 环境变量 JAVA_TOOL_OPTIONS
设置为 -Dfile.encoding=UTF8
最佳答案
您没有准确描述您看到的是哪些“奇怪的字符”,但我假设您实际上是指 Mojibake例如 ÄÄÄÅóżź
而不是 ąćęłóżź
,因此不是问号,例如 ??????
而不是 ąćęłóżź
.
您需要调用request.setCharacterEncoding("UTF-8")
在您通过request.getParameter(name)
收集POST 请求参数之前>,否则将使用服务器平台默认的从查询字符串解码它们,通常是 ISO-8859-1 而不是 UTF-8。
设置请求字符编码的最佳位置是 servlet filter它映射到覆盖所有 POST 请求的 URL 模式。
另见
关于Mysql Workbench 和来自 jsp 的抛光语言输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12290081/