Java 不同的字符集命令行与工作台与Eclipse
俄语字母有问题。 在mysql的windows 7命令行中,使用下一个字符集配置:Java 不同的字符集命令行与工作台与Eclipse,java,mysql,eclipse,character-encoding,mysql-workbench,Java,Mysql,Eclipse,Character Encoding,Mysql Workbench,俄语字母有问题。 在mysql的windows 7命令行中,使用下一个字符集配置: +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
及
很好,我得到了这样的结果:
+------------------+
| name |
+------------------+
| СТАНДАРТ+ |
| VIP тариф |
| БАЗОВЫЙ 30 |
| БИЗНЕС 512 |
但通过MySQL Workbench中的此配置,您可以获得以下信息:
��������+
VIP �����
������� 30
在Eclipse控制台或windows提示符中的java应用程序中:
????????+
VIP ?????
??????? 30
问题出在哪里?确保您在任何地方都使用Unicode(UTF-8编码):
- 当连接到MySQL时
- 在Eclipse中的项目设置中
- 在MySQL工作台的首选项中
另外,请确保已安装支持Unicode的字体,并且已将应用程序配置为使用这些字体(默认字体应该可以;如果更改了字体,请重置首选项)。在java中,通过get
ResultSet
string end get from it bytes InISO-8859-1
解决了问题。然后从字节创建新字符串
new String(rs.getString(1).getBytes("ISO-8859-1"))
Eclipse和Workbench中的所有选项都是默认选项!违约通常是错误的。如果您为自己编写的代码从未与世界上任何其他人共享,则默认设置是可以的。一旦您编写的代码将在不同的系统上运行(如使用不同默认编码的系统),则默认代码将中断。-1此代码将在使用不同默认编码的Windows系统上中断。
new String(rs.getString(1).getBytes("ISO-8859-1"))