Ⅰ 如何查看字元編碼類型
可梁指以通過以下方法來進行編碼逗困格式判斷,輸入一個字元串,之後返回字元串編碼類型。
public static String getEncoding(String str) {
String encode = "GB2312";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判斷是不是GB2312
String s = encode;
return s; //是的話,返回「GB2312「,以下代碼同理
}
} catch (Exception exception) {
}
encode = "ISO-8859-1";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判斷是不是ISO-8859-1
String s1 = encode;
return s1;
}
} catch (Exception exception1) {
}
encode = "UTF-8";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判斷是不是UTF-8
String s2 = encode;
return s2;
}
} catch (Exception exception2) {
}
encode = "GBK";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判斷是不是GBK
String s3 = encode;
return s3;
}
} catch (Exception exception3) {
}
return ""; //如果都不是,說明輸入的內容不屬於常見的山渣念編碼格式。
}
Ⅱ 如何判別一個字元串是否是utf8還是unicode編碼格式
游好兩個編碼的好磨謹區別是在英友基文字元,UTF-8的英文是一個位元組,UNICODE的是兩個。可以按這個特點來判斷,但如果是全中文就區分不出來了。
Ⅲ linux下用什麼函數判斷字元串的編碼方式
如題,假設給你一個字元數組
char a[]="abc";
在它的編碼中gb2312和utf-8都一樣
對任意一個字元而言,並版沒有編權碼格式的概念。同樣的一個字母,在不同編碼集裡面代表不同的東西,當然也有可能恰好代表相同的東西。
編碼集並不是文本本身的屬性,而是觀察者的角度,也就是說你用什麼編碼集來觀察這段文本。——從程序的角度就是,你用什麼軟體去打開它。——編碼識別大多通過非法字元進行識別,也就是說僅僅當我們判斷具有非法的utf-8字元序列的時候,我們判斷一個文本「不是utf-8」編碼,但是我們永遠無法判斷一個文本「是utf-8編碼」。——如果不包含任何非法字元,那麼你就可以用任何編碼去查看他:
例如「逍遙」如果使用BIG5碼,但你還是可以使用GBK碼查看這兩個字,最後得到的是「殊換」。顯然這兩個詞都是合法的,如果僅僅給你這個詞,那麼你無論從理論還是實際上都不可能知道原文的作者究竟是想表達「逍遙」還是「殊換「。
Ⅳ Window、Linux下如何查看修改oracle字元集編碼
select userenv('language') from al(客戶端查詢)
-----Window下下查看及更改oracle字元集編碼
打開注冊表--HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG
修改NLS_LANG的鍵值
# 常用中文字元集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字元集
set NLS_LANG=american_america.AL32UTF8
-----Linux下查看及更改oracle字元集編碼
[root@OracleDB ~]# cd /usr/local/oracle/
[root@OracleDB oracle]# env|grep NLS_LANG
NLS_LANG=american_america.zhs16gbk
[root@OracleDB oracle]# vi .bash_profile
# 使 bash_profile 設置生效
Ⅳ 如何檢查字元串是否是UTF8編碼
String str1;
String str2 = new String(str1.getBytes("iso8859-1"),"utf-8");
這樣可以把iso8859-1或汪肆毀者是其它編碼(雹祥改getBytes中的內困備容)的字元串改為UTF-8,
Ⅵ 查看linux字元編碼命令
i).在 Vim 中可以直接查看文件編碼(shift + :)輸入set fileencoding 即可顯示文件編碼格式。
如果你只是想查看其它編碼格式的文件或者想解決用 Vim 查看文件亂碼的問題,那麼你可以在 ~/.vimrc 文件中添加以下內容: set
encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 這樣, 就可以讓 vim 自動識別文件編碼
(可以自動識別 UTF-8或者 GBK 編碼的文件) ,其實就是依照 fileencodings
提供的編碼列表嘗試,如果沒有找到合適的編碼,就用 latin-1(ASCII)編碼打開。
ii). enca (需要安裝)查看文件編碼:$enca filename filename: Universal
transformation format 8 bits; UTF-8 CRLF line terminators 需要說明一點的是,enca
對某些 GBK 編碼的文件識別的不是很好,識別時會出現: Unrecognized encoding
iii)還有一種很簡單的方式,file 文件名 可以查看非elf文件的編碼格式
Ⅶ 如何在 Linux 中將文件編碼轉換為 UTF-8
你可以使用 file 命令,並添加 -i 或 --mime 參數來查看一個文件的字元編碼,這個參數可以讓程序像下面的例子一樣輸出字元串的 mime (Multipurpose Internet Mail Extensions) 數據:
$ file -i Car.java
$ file -i CarDriver.java
在 Linux 中查看文件的編碼
iconv 工具的使用方法如下:
$ iconv option
$ iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile
在這里,-f 或 --from-code 表明了輸入編碼,而 -t 或 --to-encoding 指定了輸出編碼。
為了列出所有已有編碼的字元集,你可以使用以下命令:
$ iconv -l
列出所有已有編碼字元集。下面的命令將會將 ISO-8859-1 編碼轉換為 UTF-8 編碼。
在運行 iconv 命令之後,我們可以像下面這樣檢查輸出文件的內容,和它使用的字元編碼。
$ file -i input.file
$ cat input.file
$ iconv -f ISO-8859-1 -t UTF-8//TRANSLIT input.file -o out.file
$ cat out.file
$ file -i out.file
在 Linux 中將 ISO-8859-1 轉化為 UTF-8
注意:如果輸出編碼後面添加了 //IGNORE 字元串,那些不能被轉換的字元將不會被轉換,並且在轉換後,程序會顯示一條錯誤信息。
好,如果字元串 //TRANSLIT 被添加到了上面例子中的輸出編碼之後 (UTF-8//TRANSLIT),待轉換的字元會盡量採用形譯原則。也就是說,如果某個字元在輸出編碼方案中不能被表示的話,它將會被替換為一個形狀比較相似的字元。
Ⅷ linux 怎麼檢測文件名的編碼格式
首先我們打開系統並使用root賬戶登錄系統。然後使用命令「file -i /opt/test.log」來查看test.log的文件編碼格式。具體展示如下圖所示。
下面我們介紹命令iconv的命令的用法,首先我們查看幫助文檔。執行命令「iconv --help」查看幫助文檔。具體如下圖所示。
下面詳細介紹各個參數的含義。
-f encoding 表示原始文件的字元編碼。
-t encoding 表示輸出文件的字元編碼。
-l 表示列舉所有已知的字元集。
-c 表示從輸出中忽略無效的字元
-o filename 表示輸出文件
-s 表示關閉警告。
--verbose 表示顯示進度信息。
下面我們執行命令「iconv -l」查看支持的所有的字元編碼格式。具體展示如下圖所示。
下面我們簡單用下如何轉換,將上面我們查看的test.log的字元編碼轉化為UTF-8編碼,並且重新輸出到test1.log。我們使用命令「iconv test.log -f iso-8859-1 -t UTF-8 -o test1.log --verbose」具體展示如下圖所示。
最後我們驗證轉化後的test1.log的字元編碼。我們執行命令"file -i /opt/test1.log"查看字元編碼,可以看到已經轉化為utf-8了。
Ⅸ 如何查看字元編碼類型
一般來說要局配告對字元編碼格式進行判斷就是根據各種編碼兩個位元組的起止范圍作判斷,如果符合起止范圍就認為是某種字元編碼。但理論上來說不同的字元編碼有可能會採用同樣的位元組范圍,所以這種方法並不能完全把某個雙位元組字元對應到唯一的一種編碼格式上(所以說如果大家都用
utf-8 ,整個世界就清靜了)。這種伴隨著計算機發展而衍生出來的各種雙位元組語言字元編碼只能是盡量想辦法處理,但難有完美解決方案。
CnCharsetChecker.Java 源代碼:
publicclassCnCharsetChecker{
/*SupportforChinese(GB2312)characters*/
//#defineisgb2312head(c)(0xa1<=(uchar)(c)&&(uchar)(c)<=0xf7)
//#defineisgb2312tail(c)(0xa1<=(uchar)(c)&&(uchar)(c)<=0xfe)
publicstaticbooleanisGB2312(bytehead,bytetail){
intiHead=head&0xff;
intiTail=tail&0xff;
return((iHead>=0xa1&&iHead<=0xf7&&
iTail>=0xa1&&iTail<=0xfe)?true:false);
}
/*SupportforChinese(GBK)characters*/
桐明//#defineisgbkhead(c)(0x81<=(uchar)(c)&&(uchar)(c)<=0xfe)
//#defineisgbktail(c)((0x40<=(uchar)(c)&&(uchar)(c)<=0x7e)
//||(0x80<=(uchar)(c)&&(uchar)(c)<=0xfe))
publicstaticbooleanisGBK(bytehead,bytetail){
intiHead=head&0xff;
intiTail=tail&0xff;
return((iHead>=0x81&&iHead<=0xfe&&
(iTail>=0x40&&iTail<=0x7e||
iTail>=0x80&&iTail<=0xfe))?true:false);
}
/*SupportforChinese(BIG5)characters*/
//#defineisbig5head(c)(0xa1<=(uchar)(c)&&(uchar)(c)<=0xf9)
//#defineisbig5tail(c)((0x40<=(uchar)(c)&&(uchar)(c)<=0x7e)
//||(0xa1<=(uchar)(c)&&(uchar)(c)<=0xfe))
publicstaticbooleanisBIG5(bytehead,bytetail){
intiHead=head&0xff;
intiTail=tail&0xff;
return((iHead>=0xa1&&iHead<=0xf9&&
(iTail>=0x40&&iTail<=0x7e||
iTail>=0xa1&&iTail<=0xfe))?true:false);
}
publicstaticvoidmain(String[]args){
StringsGB="愛";
StringsGBK="愛";
StringsBIG5="稲";
byte[]sChars=null;
sChars=sGB.getBytes();
System.out.println(sGB+"is"+
CnCharsetChecker.isGB2312(sChars[0],sChars[1])+"forGB2312;"+
賣則CnCharsetChecker.isGBK(sChars[0],sChars[1])+"forGBK,"+
CnCharsetChecker.isBIG5(sChars[0],sChars[1])+"forBIG5");
sChars=sGBK.getBytes();
System.out.println(sGBK+"is"+
CnCharsetChecker.isGB2312(sChars[0],sChars[1])+"forGB2312;"+
CnCharsetChecker.isGBK(sChars[0],sChars[1])+"forGBK,"+
CnCharsetChecker.isBIG5(sChars[0],sChars[1])+"forBIG5");
sChars=sBIG5.getBytes();
System.out.println(sBIG5+"is"+
CnCharsetChecker.isGB2312(sChars[0],sChars[1])+"forGB2312;"+
CnCharsetChecker.isGBK(sChars[0],sChars[1])+"forGBK,"+
CnCharsetChecker.isBIG5(sChars[0],sChars[1])+"forBIG5");
}
}
Ⅹ 如何利用linux系統的shell判斷一個字元串中是否存在特定字元串,比如要在"dhjcdghba
[echo"dhjcdghbabcjjfdjcd"|租李grepabc弊豎遲纖慶]&&COMMAND1||COMMAND2