如何在sqlite控制台中正确显示汉字? [英] how to display chinese character properly in sqlite console?

查看:86
本文介绍了如何在sqlite控制台中正确显示汉字?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里是utf-8格式的示例csv文件,可以在win7的记事本中打开,中文显示正常,请下载.
显示字符,而不是关于 对应(Windows latino 1),windows等效代码页设置:chcp 819

总而言之,这两个选项都已选中在高级选项卡"中,我选择了中文:

第2步在终端/命令窗口"

中从光栅切换到中文字体

额外步骤 3(可选)在记事本中检查字体

记事本可用于一些字体检查,例如打开 temp.csv 并使用字体,但请注意:命令窗口中字体可用的必要条件

Here is the sample csv file in utf-8 format which can be opened in win7's notepad and the chinese character displayed properly ,please download it .
http://pan.baidu.com/s/1sj0ia4H

Open your cmd ,and set chcp 650001.

C:\Users\pengsir>sqlite3  e:\\test.db   
SQLite version 3.8.4.3 2014-04-03 16:53:12  
Enter ".help" for usage hints.
sqlite> create table ipo(name TEXT,method TEXT);
sqlite> .separator ","
sqlite> .import  "e:\\tmp.csv"  ipo
sqlite> select * from ipo;
000001,公开招募
000002,ç"³è¯·è¡¨æŠ½ç­¾é™é¢è®¤è´­
000004,定å‘å‘è¡Œ
000005,é"¶è¡Œå‚¨è"„å­˜å•æ–¹å¼
000006,ç"³è¯·è¡¨æŠ½ç­¾é™é¢è®¤è´­
000007,自办å‘è¡Œ
000008,自办å‘è¡Œ
000009,定å‘å‘è¡Œ
000010,定å‘å‘è¡Œ
000011,ç"³è¯·è¡¨æŠ½ç­¾ç­‰é¢è®¤è´­
sqlite>

why the same sqlite command can get proper display in sqlitemanager?
and how can i set to display chinese character in sqlite console?

In pysqlite3 , it can get right display in python console.

>>> import sqlite3  
>>> con=sqlite3.connect("e:\\test.db")   
>>> cur=con.cursor()   
>>> cur.execute("select * from ipo;")  
<sqlite3.Cursor object at 0x01751720>  
>>> print(cur.fetchall())   
[('000001', '公开招募'), ('000002', '申请表抽签限额认购'), ('000004', '定向发行'   
), ('000005', '银行储蓄存单方式'), ('000006', '申请表抽签限额认购'), ('000007',   
'自办发行'), ('000008', '自办发行'), ('000009', '定向发行'), ('000010', '定向发   
行'), ('000011', '申请表抽签等额认购')]   
>>>   

解决方案

This issue concers how Command Prompt window shows the characters, and is not about how sqlite3 prints the output;

As a simple demonstration here we absolutely exclude sqlite3 and look at the files by the type command:

Let's see whats happen in other different O.S., for example in OSX: ISO-8859-1 correspond to (Windows latino 1), windows equivalent code page setting: chcp 819 UTF8 correspond to Unicode (UTF-8), windows equivalent code page setting: chcp 65001

Pretty the same behavior also happens in Windows: use command chcp to inspect and/or setting-up your current code page

NOTICE: this is a screenshot of an Italian Windows XP and as you can see there is still no luck! :-( , in this case the cause consists in a leak of available fonts configurable in command prompt properties in my "Windows XP" box:

I hope this is not the case of your "Windows Seven" box ( ..but if it is , please leave me a comment to be a more specific in this part of the answer ). ..when the problem switches to the "fonts available" then Additional Languages supports would be installed and still need forcing UTF-8 by a chcp 65001:

How to get proper fonts

follows the list of steps I followed to get the result on ITA WinXP SP2 as shown in the above screenshot:

Step 1 Install East Asian language files on your computer

lecture link: to install East Asian language files on your computer

In summary these two options have been both checked and in "Advanced Tab" I've selected Chinese:

Step 2 Switch from raster to chinese font in the terminal/"Command Windows"

Extra Step 3 (Optional) Check font in notepad

Notepad can be useful for some inspections on fonts, for example open the temp.csv and play with fonts but be aware of: Necessary criteria for fonts to be available in a command window

这篇关于如何在sqlite控制台中正确显示汉字?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆