Linux下iconv轉換字符集

在windows下編輯好了SQL執行腳本,可是傳到linux上執行時報錯,顯示有不識別的字符。這須要進行字符集的轉換。我通常是用iconv進行字符的邊編碼轉換。可是此次執行時報出以下錯誤:iconv: 未知 2 處的非法輸入序列linux

上網找到以下說明資料:windows

編碼轉換的時候,若是你的源格式設定爲 GB2312 的話,並且在轉換成 UTF-8 的時候,發現程序會報「illegal input sequence at position xxxx」的錯誤。這是因爲你以前的作的假定有問題。GB2312 是國標裏面一個最小也是最先的中文編碼標準。其中,只涵蓋了 6,763 個漢字。因此你須要轉換的文件的原始的格式可能並非 GB2312 編碼。這個時候,你能夠用 GB18030 作爲源格式來進行轉換。GB18030 是最新的國家標準,包含了 27,564 個漢字,並且向下兼容 GB2312 和 GBK。ide

假定的字符集指定,上述狀況還能夠在iconv中加入 -c 選項,忽略無效的字符,也可轉換成功。編碼

附iconv的用法:code

iconv命令用於轉換指定文件的編碼,默認輸出到標準輸出設備,亦可指定輸出文件。utf-8

用法:iconv [選項...] [文件...]input

有以下選項可用:it

輸入/輸出格式規範:io

-f, --from-code=名稱 原始文本編碼class

-t, --to-code=名稱 輸出編碼

信息:

-l, --list 列舉全部已知的字符集

輸出控制:

-c 從輸出中忽略無效的字符

-o, --output=FILE 輸出文件

-s, --silent 關閉警告

--verbose 打印進度信息

--help 給出該系統求助列表

--usage 給出簡要的用法信息

-V, --version 打印程序版本號

例子:

iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt

這個命令讀取aaa.txt文件,從utf-8編碼轉換爲gb2312編碼,其輸出定向到bbb.txt文件。

相關文章
相關標籤/搜索