俄文字母问题。在mysql的windows 7命令行中使用下一个字符集配置:
+--------------------------+----------------------------------+
| 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/ |
+--------------------------+----------------------------------+
和
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
都很好,我得到这样的结果:
+------------------+
| name |
+------------------+
| СТАНДАРТ+ |
| VIP тариф |
| БАЗОВЫЙ 30 |
| БИЗНЕС 512 |
但是在MySQL Workbench中使用这个配置得到这个:
��������+
VIP �����
������� 30
和在java应用程序中的Eclipse控制台或windows提示符:
????????+
VIP ?????
??????? 30
有什么问题吗?
确保在任何地方使用Unicode (UTF-8编码):
- 连接MySQL时
- 在Eclipse 中的项目设置MySQL Workbench的首选项
还要确保你已经安装了支持Unicode的字体,并且你已经配置了你的应用程序来使用这些字体(默认字体应该很好;如果您更改了字体,则重新设置首选项)。
在java中通过get ResultSet
字符串结束从ISO-8859-1
中获取它字节来解决问题。create new String
from bytes.
new String(rs.getString(1).getBytes("ISO-8859-1"))