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_clientcharacter_set_connectioncharacter_set_resultsvariables为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。