有没有什么好的、直接的方法可以在使用PuTTY连接的同时使用MySQL的普通命令行客户端连接到MySQL数据库,并让它正确地呈现包含非西方字符的UTF8字段?
我的表使用UTF8编码,在正常使用中,这些值来自安卓应用程序,并由安卓应用程序显示。问题是偶尔会出问题,当发生问题时,我几乎不可能弄清楚发生了什么,因为MySQL的命令行客户端强制将UTF8值强制转换为(看起来是) ISO-8859-1 (即在屏幕上显示的准随机胡言乱语)。无论如何,Toad For MySQL (免费和测试版)似乎以同样的方式破坏了UTF8输出。
在半相关的注释中,我最喜欢的等宽字体是Andale Mono (是的,我真的喜欢强制消除歧义的0/O和1/l字符)。我很确定它不包括CJK字符。有没有什么(免费)实用程序可以用来从一种Truetype字体(如Andale Mono)中提取出较低的127或256个字符,并基于某些UTF8 CJK Truetype字体创建一个新的Truetype字体,用从Andale Mono中提取的字体数据替换较低的127或256个字符?
发布于 2011-11-07 01:34:57
首先,您应该确保您的控制台编码设置为UTF-8。使用PuTTY,你需要在“窗口”>“翻译”中将字符集下拉设置为UTF-8
第二个MySQL区分数据字符集和连接字符集。如果您的数据是UTF-8编码的,但您的连接字符集设置为例如"ISO-8859-1“MySQL将自动转换输出。
永久设置字符集的最简单方法是使用以下内容更新客户端my.cnf:
[client]
default-character-set=utf8有关连接字符集的详细信息,可在此处找到:http://dev.mysql.com/doc/refman/5.5/en/charset-connection.html
当使用PHP函数时(例如MySQL客户端)您可以通过发送查询来设置连接字符集
SET NAMES utf8MySQL应用编程接口的各种实现也支持直接设置字符集。例如http://www.php.net/manual/en/mysqli.set-charset.php
https://stackoverflow.com/questions/8028750
复制相似问题