公司领导要我导一个文件到sybase iq数据库一张表中,load表语句如下:
load table kyfx_ci_loc(
city_name ',',
county_id
ci_name ',',
ci_section ',',
ci_id ',',
ci_longtitude_gps ',',
ci_latitude_gps ',',
ci_longtitude_baidu ',',
ci_latitude_baidu 0x0a)
using file '/home/sybase/baidulocations.txt'
quotes off
escapes off
go
导完以后从客户端查看发现字符集乱码,我开始查看是不是文件字符编码问题;
于是我在vi中查看文件修改文件字符编码
:set fileencoding=utf-8
同时也使用enca转换文件字符编码集
enca -L zh_CN file
检查文件的编码
enca -L zh_CN -x UTF-8 file
将文件编码转换为"UTF-8"编码
enca -L zh_CN -x UTF-8 file1
file2
如果不想覆盖原文件可以这样
然后我查看sybase iq服务器和客户端的字符编码
查看数据库字符集:
select db_property('collation')
或者
select db_property('CharSet')
查看客户端字符集:
select connection_property ( 'charset' )
得知服务端和客户端字符集均为iso_1
我想如何修改客户端字符集为cp936,我于是查看机器的字符编码
cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
于是修改/etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
SUPPORTED=”zh_CN.GB2312:zh_CN:zh:en_US.UTF-8:en_US:en”
自此导表就不会出现中文显示乱码咯!