當前位置:首頁 » 操作系統 » linux轉換編碼

linux轉換編碼

發布時間: 2022-04-11 20:04:02

Ⅰ 如何批量修改linux 文件編碼格式

批量轉換文件的編碼當然是使用命令來轉換咯,如果文件太多還可以寫一個shell腳本進行批量轉換,Linux系統中轉換文件編碼格式的命令是iconv。iconv命令的使用介紹一下,iconv命令很簡單,記住它的三個參數就可以了,下面是它的三個參數:
-f參數:表示from,就是原本的編碼格式
-t參數:表示to,就是後來的新編碼
-o參數:表示輸出文件,就是轉換編碼後的新文件的文件名,如果沒有這個參數新文件會將原來的文件覆蓋掉。
下面是將GB2312編碼的文件轉換成UTF-8編碼的例子:
iconv -f gb2312 -t utf8 mygb2312.txt -o myutf8.txt
這個例子中mygb2412.txt就是要轉換的文件,myutf8.txt就是轉換後的新文件。

Ⅱ 如何在Linux中將文件編碼轉換為UTF-8

在Linux中轉換文件的編碼可以使用iconv命令,iconv命令很簡單,記住它的三個參數就可以了,下面是它的三個參數: -f參數:表示from,就是原本的編碼格式 -t參數:表示to,就是後來的新編碼 -o參數:表示輸出文件,就是轉換編碼後的新文件的文件...

Ⅲ linux轉換文件編碼格式

在 Vim 中直接進行轉換文件編碼,比如將一個文件轉換成 utf-8格式 :set fileencoding=utf-8;
iconv 轉換,iconv 的命令格式如下:輸入/輸出格式規范:iconv -f, --from-code=名稱 原始文本編碼 -t, --to-code=名稱 ,比如說將一個 UTF-8 編碼的文件轉換成 GBK 編碼 iconv -f GBK -t UTF-8 file1 -o file2
enconv 轉換文件編碼 比如要將一個 GBK 編碼的文件轉換成 UTF-8編碼,操作如下 enconv -L zh_CN -x UTF-8 filename

Ⅳ linux 下如何把URL編碼轉換

把這個保存成程序,比如
conv.pl:
perl
-e
'$a=<>;$a
=~
s/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;
print
$a
.
"\n";
然後這樣使用:
chmod
+x
conv.pl
echo
%E5%A5%A5%E8%BF%AA
|
./conv.pl

Ⅳ Linux中如何查看文件編碼及對文件進行編碼轉換

查看文件編碼
在Linux中查看文件編碼可以通過以下幾種方式:
1.在Vim中可以直接查看文件編碼
:set fileencoding
即可顯示文件編碼格式。
如果你只是想查看其它編碼格式的文件或者想解決用Vim查看文件亂碼的問題,那麼你可以在
~/.vimrc 文件中添加以下內容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

這樣,就可以讓vim自動識別文件編碼(可以自動識別UTF-8或者GBK編碼的文件),其實就是依照fileencodings提供的編碼列表嘗試,如果沒有找到合適的編碼,就用latin-1(ASCII)編碼打開。

文件編碼轉換
1.在Vim中直接進行轉換文件編碼,比如將一個文件轉換成utf-8格式
:set fileencoding=utf-8
2. iconv 轉換,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如將一個UTF-8 編碼的文件轉換成GBK編碼
iconv -f GBK -t UTF-8 file1 -o file2

iconv -f gbk -t utf8 linux常用命令.txt > linux常用命令.txt.utf8

文件名編碼轉換:

從Linux 往 windows拷貝文件或者從windows往Linux拷貝文件,有時會出現中文文件名亂碼的情況,出現這種問題的原因是因為,windows的文件名 中文編碼默認為GBK,而Linux中默認文件名編碼為UTF8,由於編碼不一致,所以導致了文件名亂碼的問題,解決這個問題需要對文件名進行轉碼。

在Linux中專門提供了一種工具convmv進行文件名編碼的轉換,可以將文件名從GBK轉換成UTF-8編碼,或者從UTF-8轉換到GBK。

首先看一下你的系統上是否安裝了convmv,如果沒安裝的話用:
yum -y install convmv
安裝。

下面看一下convmv的具體用法:

convmv -f 源編碼 -t 新編碼 [選項] 文件名

常用參數:
-r 遞歸處理子文件夾
--notest 真正進行操作,請注意在默認情況下是不對文件進行真實操作的,而只是試驗。
--list 顯示所有支持的編碼
--unescap 可以做一下轉義,比如把%20變成空格
比如我們有一個utf8編碼的文件名,轉換成GBK編碼,命令如下:

convmv -f UTF-8 -t GBK --notest utf8編碼的文件名
這樣轉換以後"utf8編碼的文件名"會被轉換成GBK編碼(只是文件名編碼的轉換,文件內容不會發生變化)

Ⅵ 如何在 Linux 中將文件編碼轉換為 UTF-8

unix下轉換文件編碼的命令叫做iconv
iconv命令用法如下:
iconv
[選項...]
[文件...]
常用參數
-f,
--from-code=原始文本編碼
-t,
--to-code=輸出編碼
-l,
--list
列舉所有已知的字元集
-c
從輸出中忽略無效的字元
-o,
--output=file
輸出文件
舉例:
iconv
-c
-f
gb2312
-t
utf-8
-o
utf8.txt
ansi.txt

Ⅶ linux下怎麼改變文件的編碼格式

1.在Vim中直接進行轉換文件編碼,比如將一個文件轉換成utf-8格式
:set fileencoding=utf-8

2. enconv 轉換文件編碼,比如要將一個GBK編碼的文件轉換成UTF-8編碼,操作如下
enconv -L zh_CN -x UTF-8 filename

3. iconv 轉換,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如將一個UTF-8 編碼的文件轉換成GBK編碼
iconv -f GBK -t UTF-8 file1 -o file2
查看文件編碼file命令
file ip.txt ip.txt: UTF-8 Unicode text, with escape sequences
一、利用iconv命令進行編碼轉換文件內容編碼轉換 iconv命令用於轉換指定文件的編碼,默認輸出到標准輸出設備,亦可指定輸出文件。 用法: iconv [選項...] [文件...] 有如下選項可用: 輸入/輸出格式規范: -f, --from-code=名稱 原始文本編碼 -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文件。

Ⅷ 如何在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;
}

熱點內容
方舟主機專用伺服器是什麼意思 發布:2024-11-15 11:12:23 瀏覽:7
創維最早的伺服器是什麼 發布:2024-11-15 11:11:35 瀏覽:863
手機配置太低怎麼下載原聲 發布:2024-11-15 11:03:31 瀏覽:904
21款奧迪a6配置有哪些 發布:2024-11-15 11:03:20 瀏覽:119
sql內連接外連接 發布:2024-11-15 11:03:19 瀏覽:600
學完python基礎 發布:2024-11-15 11:01:56 瀏覽:62
捏泡膠解壓 發布:2024-11-15 10:55:07 瀏覽:802
linux文件最後一行 發布:2024-11-15 10:44:11 瀏覽:612
怎麼根據序列號查配置 發布:2024-11-15 10:31:52 瀏覽:348
mysql查看資料庫位置 發布:2024-11-15 10:25:16 瀏覽:439