MySQL命令行格式与UTF8
我有一个包含瑞典/挪威string的数据库表。
当我查询一些数据,我得到这样的输出:
输出set names latin1;
+-----------------------------------+ | name | +-----------------------------------+ | Kid Interi##### | | Bwg Homes | | If Skadef####kring | | Jangaard Export | | Nordisk Film | +-----------------------------------+
现在,如果我set names utf8;
为了看到具有适当编码的字符,MySQL命令行的表格输出的格式会被破坏。
输出set names utf8;
+-----------------------------------+ | name | +-----------------------------------+ | Kid Interiør | | Bwg Homes | | If Skadeförsäkring | | Jangaard Export | | Nordisk Film | +-----------------------------------+
题:
这不是一个大问题,但它使输出有点难以阅读。 有谁知道如何保持表格格式不变?
用选项--default-character-set=utf8
启动客户端。
mysql --default-character-set=utf8
这将强制character_set_client
, character_set_connection
和character_set_results
variables为utf8。
有关连接字符集的更多信息
您可以将它设置为my.cnf
文件中的默认选项,在每次调用mysql客户端时, [mysql]
节将自动包含该选项。
[mysql] default-character-set=utf8
这些带有utf8的“øöä”需要2个字节,所以你忘记使用wchar或utfstring?
这是我的testing代码在Python中:
s = ["Kid Interiør","Bwg Homes","If Skadeförsäkring"] for w in s: print '|',w.ljust(20,' '),'|'
结果就像你的程序打印出来一样。 我所需要做的就是改变strings
的编码:
s = [u"Kid Interiør",u"Bwg Homes",u"If Skadeförsäkring"] for w in s: print '|',w.ljust(20,' '),'|'
结果是
| Kid Interiør | | Bwg Homes | | If Skadeförsäkring |
我没有在c ++中testing,但我build议你可以使用wchar,std :: wcout。