公司領導要我導一個文件到sybase iq數據庫一張表中,load表語句以下:sql
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
導完之後從客戶端查看發現字符集亂碼,我開始查看是否是文件字符編碼問題;shell
因而我在vi中查看文件修改文件字符編碼數據庫
:set fileencoding=utf-8
同時也使用enca轉換文件字符編碼集服務器
enca -L zh_CN file
檢查文件的編碼編碼
enca -L zh_CN -x UTF-8 file
將文件編碼轉換爲"UTF-8"編碼code
enca -L zh_CN -x UTF-8 file1 file2
若是不想覆蓋原文件能夠這樣utf-8
而後我查看sybase iq服務器和客戶端的字符編碼ci
查看數據庫字符集:
it
select db_property('collation')
或者io
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」
自此導表就不會出現中文顯示亂碼咯!