MYSQL JAVA Netbeans 和 JXL 的特殊字符
Special Characters with MYSQL JAVA Netbeans and JXL
我在使用 MYSQL 数据库中的 í、ó、ñ 等特殊字符时遇到问题。
我已经阅读了很多关于字符集、排序规则、utf 和子类的内容,但我可能无法将其正确应用于此问题。我不确定问题是出在我的 table 上还是在读取源文件和编码时。我正在使用 netbeans 开发一个生成特定报告的界面
这里简单说明一下出现问题的过程
- 有一个 table,其中包含请求的 Excel 文件的路径文件。
- 我的代码采用该路径,使用 JXL 库打开文件。
- 然后它开始读取代码中指示的每个单元格并将数据导出到指示的 tables(这里是表格中出现的每个特殊字符中的位置)
- 数据正确导出到几个table中,没有问题,只有用这个替换的特殊字符�
所以,在研究之后我尝试了这个
- 当我使用 MYSQL workbench 时,我已经从 utf8 更改了归类中的每个 table - 默认为 utf8 - utf8_spanish_ci 和 utf8 - utf8_spanish_ci
- 我也尝试过将排序规则更改为 utf16 - 默认排序规则、utf_spanish_ci、bin 等
- 另外,我试过使用 utf32 排序规则。
- netbeans编码正确设置为utf-8
我尝试探索连接到 MYSQL 的 JAVA 函数,我正在使用这个连接,但我没有发现任何关于编码的信息:
private Connection conecta=null;
String Driver="com.mysql.jdbc.Driver";
String Url="jdbc:mysql://XXX.XXX.XXX.XX/BLAABLA";
Class.forName(Driver);
conecta=DriverManager.getConnection(Url,User,Password);
数据库当我手动插入包含特殊字符的数据时,它会在我需要时正确显示,但是当我尝试使用前面描述的自动插入选项时,它使用 jxl 库读取文件并且依此类推,然后就发生了�事情。
我在 Whosebug 中找到了一些有用的答案,但所有答案都与 php、html、xml 等的特定情况有关。所有关于java的答案都与utf8排序规则有关
所以我希望你能给我一些帮助。
我是不是排序不正确?我应该直接在控制台中尝试一些奇怪的事情吗? mysql workbench 是在禁止什么吗?
我乐于接受各种建议,但如果答案类似于 "You must use another library because jxl does not work with that",请考虑我的项目即将完成,并使用不同的库重新执行此操作可能会花费我更多时间,因为我已经预料到了。拜托,如果 JXL 是问题所在,那么可能一定有其他问题。没有什么是不可能的吧?
谢谢你的时间。
Excel 文件默认使用 windows-1255 (Cp1255) 编码。因此,当您从 excel 文件中读取这些字节时,您需要使用该字符集处理它们,然后使用 utf8.
存储它们
我在使用 MYSQL 数据库中的 í、ó、ñ 等特殊字符时遇到问题。
我已经阅读了很多关于字符集、排序规则、utf 和子类的内容,但我可能无法将其正确应用于此问题。我不确定问题是出在我的 table 上还是在读取源文件和编码时。我正在使用 netbeans 开发一个生成特定报告的界面
这里简单说明一下出现问题的过程
- 有一个 table,其中包含请求的 Excel 文件的路径文件。
- 我的代码采用该路径,使用 JXL 库打开文件。
- 然后它开始读取代码中指示的每个单元格并将数据导出到指示的 tables(这里是表格中出现的每个特殊字符中的位置)
- 数据正确导出到几个table中,没有问题,只有用这个替换的特殊字符�
所以,在研究之后我尝试了这个
- 当我使用 MYSQL workbench 时,我已经从 utf8 更改了归类中的每个 table - 默认为 utf8 - utf8_spanish_ci 和 utf8 - utf8_spanish_ci
- 我也尝试过将排序规则更改为 utf16 - 默认排序规则、utf_spanish_ci、bin 等
- 另外,我试过使用 utf32 排序规则。
- netbeans编码正确设置为utf-8
我尝试探索连接到 MYSQL 的 JAVA 函数,我正在使用这个连接,但我没有发现任何关于编码的信息:
private Connection conecta=null; String Driver="com.mysql.jdbc.Driver"; String Url="jdbc:mysql://XXX.XXX.XXX.XX/BLAABLA"; Class.forName(Driver); conecta=DriverManager.getConnection(Url,User,Password);
数据库当我手动插入包含特殊字符的数据时,它会在我需要时正确显示,但是当我尝试使用前面描述的自动插入选项时,它使用 jxl 库读取文件并且依此类推,然后就发生了�事情。
我在 Whosebug 中找到了一些有用的答案,但所有答案都与 php、html、xml 等的特定情况有关。所有关于java的答案都与utf8排序规则有关
所以我希望你能给我一些帮助。
我是不是排序不正确?我应该直接在控制台中尝试一些奇怪的事情吗? mysql workbench 是在禁止什么吗?
我乐于接受各种建议,但如果答案类似于 "You must use another library because jxl does not work with that",请考虑我的项目即将完成,并使用不同的库重新执行此操作可能会花费我更多时间,因为我已经预料到了。拜托,如果 JXL 是问题所在,那么可能一定有其他问题。没有什么是不可能的吧?
谢谢你的时间。
Excel 文件默认使用 windows-1255 (Cp1255) 编码。因此,当您从 excel 文件中读取这些字节时,您需要使用该字符集处理它们,然后使用 utf8.
存储它们