linux系統編碼
『壹』 linux查看系統編碼和修改系統編碼的方法
然後修改/etc/sysconfig/i18n,如改成中文編碼:
LANG=en_US.UTF-8
改為
LANG="zh_CN.GBK"
然後辯渣在不重啟的情廳灶扒況下扮昌重新載入i18n文件
『貳』 linux 系統編碼 怎麼查看
linux查看系統編碼,使用locale命令,如:
註:此系統使用默認編碼,default指的是安裝系統是所設置巧鋒寬的語言編碼
如果需要改改系統編碼,可以修改/etc/sysconfig/i18n,如把utf-8改成中文編碼,如下代孝亮碼所示:
LANG=en_US.UTF-8
改為
LANG="zh_CN.GBK"
之後重基枯啟即可。
『叄』 linux不同版本的默認編碼
在灶型銀隱宴Linux下默認編碼格式為UTF-8,使用locale命令租扒查看編碼格式。若編碼格式不是UTF-8,編輯~/.bashrc,export LC_ALL=en_US.utf8
export LANG=$LC_ALL
『肆』 如何更改Linux(Ubuntu)語言和編碼設置
Ubuntu下修改系統默認語言為簡體中文:
1.首先安裝中文的支持,安裝:language-selector,language-env,language-pack-zh包
sudoapt-getinstalllanguage-selectorlanguage-envlanguage-pack-zh
2.然後使安裝生效,配置區域
dpkg-reconfigurelocales
Generatinglocales...
en_US.UTF-8...done
zh_CN.UTF-8...up-to-date
zh_HK.UTF-8...up-to-date
zh_SG.UTF-8...up-to-date
zh_TW.UTF-8...up-to-date
Generationcomplete.
Currentdefaulttimezone:'US/Eastern'.
Ubuntu里字元編碼設置:
1.修改編碼配置文件
gedit/var/lib/locales/supported.d/local
#在文件中添加如下內容:
zh_CN.GBKGBK
zh_CN.GB2312GB2312
zh_CN.UTF-8UTF-8
2.強制更新,使設置生效
sudodpkg-reconfigure--forcelocales
『伍』 Linux系統的默認編碼怎樣設置
查看默認編碼:
$: env | grep LANG
LANG=en_US.UTF-8
GDM_LANG=en_US
LANGUAGE=en_US
修改編碼(加到/etc/profile中就能永久生效):
export LANG=xxx
『陸』 如何在Linux系統實現字元編碼轉換
Linux下提供了iconv實現這襲渣一亂旦功能,在Linux 的 shell 環境下,iconv用法如下:
iconv -f fromconde -t tocode
-f: 指定需要轉換的文本編碼
-t: 指定目標文本編碼
我們也可以用 -l 列舉出所有嘩禪擾已知的字元編碼集合
iconv -l
具體用法可以通過幫助函數 iconv --help來詳細了解
另外,我們也可以在程序中直接使用該函數實現文本的編碼轉換
#ifndef __CODE_CONVERTER
#define __CODE_CONVERTER
#ifdef WIN32
#include <windows.h>
#else
#include <iconv.h>
#endif
class CodeConverter
{
private:
#ifndef WIN32
iconv_t m_cd;
#endif
const char* m_pszFromCode;
const char* m_pszToCode;
public:
CodeConverter()
{
m_pszFromCode = NULL;
m_pszToCode = NULL;
#ifndef WIN32
m_cd = 0;
#endif
}
~CodeConverter()
{
#ifndef WIN32
iconv_close(m_cd);
#endif
}
bool Initialize(const char *pszToCode, const char *pszFromCode);
size_t Convert(char* inBuf, size_t inBytesLeft, char* outBuf, size_t outBytesLen);
};
#endif
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "code_converter.h"
#include <errno.h>
bool CodeConverter::Initialize(const char* pszToCode, const char* pszFromCode)
{
if(pszFromCode == NULL || pszToCode == NULL) return false;
m_pszFromCode = pszFromCode;
m_pszToCode = pszToCode;
#ifndef WIN32
m_cd = iconv_open(m_pszToCode,m_pszFromCode);
if(m_cd == (iconv_t)-1)
{
printf("cannot open iconv descripter\n");
return false;
}
#endif
return true;
}
size_t CodeConverter:: Convert(char* inBuf, size_t inBytesLeft, char* outBuf, size_t outBytesLen)
{
int nRealLen = 0;
#ifdef WIN32
if(stricmp(m_pszFromCode,"UNICODE") == 0)
{
nRealLen = WideCharToMultiByte(CP_ACP,0,(PWCHAR)inBuf, inBytesLeft, (PCHAR)outBuf, outBytesLen,NULL,NULL);
}
if(stricmp(m_pszFromCode,"gb2312") == 0)
{
nRealLen = MultiByteToWideChar(CP_ACP,0,(PCHAR)inBuf,inBytesLeft,(PWCHAR)outBuf, outBytesLen);
}
#else
size_t outBytesLeft = outBytesLen;
size_t ret = 0;
while (1)
{
ret = iconv(m_cd, &inBuf, &inBytesLeft, &outBuf, &outBytesLeft);
if (ret == 0) break;
if (ret == (size_t)-1)
{
printf("iconv error aaa: %s\n",strerror(errno));
return -1;
}
inBuf++; inBytesLeft--;
}
nRealLen = outBytesLen-outBytesLeft;
outBuf[nRealLen]=0;
#endif
return nRealLen;
}
『柒』 如何利用命令查看linux 系統漢字編碼
1、連接上相應的linux主機,進入到等待輸入shell指令的linux命令行狀態下。
『捌』 linux查看文件編碼命令
1,使用file 命令查看文件的編碼格式
[root@dep-184 /]# file 1.txt
1.txt: ISO-8859 text
2,vim 命令
使用vim命令進入文件 1.txt,然後在使用 「:set fileencoding」 查看文件當前展示的編碼格式(這里必須確保展示內容無亂碼,才可以得到內容真實的編碼格式)
3,enca命令 《Linux就該這么學》
使用enca可以直接查看文件內容的編碼格式,如下
[root@dep-184 /]# enca 1.txt
Simplified Chinese National Standard; GB2312
『玖』 linux下中文顯示亂碼怎麼解決
linux下經常遇到的編碼問題如果你需要在Linux中操作windows下的文件,那麼你可能會經常遇到文件編碼轉換的問題。Windows中默認的文件格式是GBK(gb2312),而Linux一般都是UTF-8。
查看編碼的方法
方法一:file filename
方法二:在Vim中可以直接查看文件編碼
:set fileencoding
如果你只是想查看其它編碼格式的文件或者想解決用Vim查看文件亂碼的問題,那麼你可以在
~/.vimrc 文件中添加以下內容:
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
這樣,就可以讓vim自動識別文件編碼(可以自動識別UTF-8或者GBK編碼的文件),其實就是依照fileencodings提供的編碼列表嘗試,如果沒有找到合適的編碼,就用latin-1(ASCII)編碼打開
文件編碼轉換
多方法:
iconv 提供標準的程序和API來進行編碼轉換;
convert_encoding.py 基於Python的文本文件轉換工具;
decodeh.py 提供演算法和模塊來談測字元的編碼;
linux下文件編碼轉換:
方法一:
在Vim中直接進行轉換文件編碼,比如將一個文件轉換成utf-8格式
:set fileencoding=utf-8
或者
11)設置文件集合,即要對哪些文件進行操作,可以使用通配符,比如我通常是對 C/C++ 源程序進行編碼轉換
:args *.h *.cpp
2)給出要在每個文件上執行的命令,這里是轉換編碼:
:argdo set fenc=utf-8 | update
方法二:
iconv 轉換
5.案例:
假如說我們將windows下的一個UTF-8的文件傳到linux環境下,linux環境下的系統編碼是GB18030,我們cat的時候就會出現亂碼,這個時候就應該想到轉碼了,下面我們來進行試驗:
我們將windows下一個名為UTF-8.sh的文件傳到linux系統中,其中UTF-8.sh的內容如下:
我是中文編碼UTF-8模式~
而linux系統的系統語言設置為:
[root@sor-sys zy]# cat /etc/sysconfig/i18n
LANG=zh_CN.GB18030
SYSFONT="latarcyrheb-sun16"
這個時候查看一下文件的內容及編碼:
[root@sor-sys zy]# file UTF-8.sh
UTF-8.sh: UTF-8 Unicode text, with no line terminators
[root@sor-sys zy]# cat UTF-8.sh
鍩挎垜鏄?腑鏂囩紪鐮乁TF-8妯″紡~[root@sor-sys zy]#
[root@sor-sys zy]#
這個時候我們就需要轉換編碼了,記得使用iconv
[root@sor-sys zy]# iconv -f UTF-8 -t GB18030 UTF-8.sh -o GB18030.sh
[root@sor-sys zy]# cat GB18030.sh
??我是中文編碼UTF-8模式~[root@sor-sys zy]#
[root@sor-sys zy]# file GB18030.sh
GB18030.sh: Non-ISO extended-ASCII text, with no line terminators
[root@sor-sys zy]#
convmv就是更改文件名編碼方式的一個工具。
比如
sudo convmv -f gbk -t utf-8 -r –notest /home
就是將/home目錄下原來文件名是gbk編碼方式的全部改為utf-8格式的。這里 -f 後面為原來的編碼方式,-t 後面是要更改為的編碼方式, -r 表示這個目錄下面的所有文件, –notest 表示馬上執行,而不是僅僅測試而已。另外這命令好像要root才能執行,因此要加上 sudo。
『拾』 linux怎麼看文件的字元集編碼
在Linux中查看文件編碼可以通過以下幾種方式:1.在Vim中可以直接查看文件編碼:setfileencoding,即可顯示文件編碼格式。2.enca(如果你的系統中沒有安裝這個命令,可以用sudoyuminstall-yenca安裝)查看文件編碼