javabom
A. java判斷文件編碼格式 怎麼判斷編碼格式
UTF-8編碼的文本文檔,有的帶有BOM (Byte Order Mark, 位元組序標志),即0xEF, 0xBB, 0xBF,有的沒有。Windows下的txt文本編輯器在保存UTF-8格式的文本文檔時會自動添加BOM到文件頭。在判斷這類文檔時,可以根據文檔的前3個位元組來進行判斷。然而BOM不是必需的,而且也不是推薦的。對不希望UTF-8文檔帶有BOM的程序會帶來兼容性問題,例如Java編譯器在編譯帶有BOM的UTF-8源文件時就會出錯。而且BOM去掉了UTF-8一個期望的特性,即是在文本全部是ASCII字元時UTF-8是和ASCII一致的,即UTF-8向下兼容ASCII。
在具體判斷時,如果文檔不帶有BOM,就無法根據BOM做出判斷,而且IsTextUnicode API也無法對UTF-8編碼的Unicode字元串做出判斷。那在編程判斷時就要根據UTF-8字元編碼的規律進行判斷了。
UTF-8是一種多位元組編碼的字元集,表示一個Unicode字元時,它可以是1個至多個位元組,在表示上有規律:
1位元組:0xxxxxxx
2位元組:110xxxxx 10xxxxxx
3位元組:1110xxxx 10xxxxxx 10xxxxxx
4位元組:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
這樣就可以根據上面的特徵對字元串進行遍歷來判斷一個字元串是不是UTF-8編碼了。
舉例代碼:
java.io.File f=new java.io.File("待判定的文本文件名");
try{
java.io.InputStream ios=new java.io.FileInputStream(f);
byte[] b=new byte[3];
ios.read(b);
ios.close();
if(b[0]==-17&&b[1]==-69&&b[2]==-65)
System.out.println(f.getName()+"編碼為UTF-8");
else System.out.println(f.getName()+"可能是GBK");
}catch(Exception e){
e.printStackTrace();
}
B. java 怎麼判斷utf-8時候帶bom
選中你要查看的java文件,轉為iso-8859格式,看到亂碼的就是bom格式的
C. Java對TCComponentBOMLine的開發,求助
在資源視圖中為菜單中的每一項建立類向導,並添加Command響應函數,然後在這個函數中加入語句就可以啦。
ON_COMMAND(ID_COPY, OnCopy)//加Command響應函數,自動出現的灰色語句
void CArcSoft_EffectDlg::OnCopy()
{// TODO: Add your command handler code here
MessageBox("復製成功!");
MFC文檔的菜單欄中添加一個command響應函數
基於CFormView的應用程序,經常會在菜單欄中添加一個按鈕,點擊該按鈕時,會彈出一個對話框~~
具體實現方式如下
1.新建一個對話框資源,同時新建一個對話框類和該資源對應,舍對話框類名為CTestDialog;
2.在資源視圖中找到Menu 這個文件夾,雙擊裡面的文件IDR_MAINFRAME,在這里可以添加自己想要的菜單,也可把原來的【文件】、【編輯】等菜單給刪掉~~
添加菜單的方法:右擊右側空白區域,選擇properties,彈出的對話框中,把pop_up勾選掉,添加一個ID和CAPTION,設ID為ID_MYTEST,caption|為【測試】
(要注意的是,最好選擇View類,而不是Frame類或其他類)
3.Ctrl+W彈出類向導,message maps中的class name 選擇為View類,
從Object IDs中找到我們上一步設置的ID_MYTEST,右側的message選擇Command命令,添加一個命令響應函數;
4.在該函數中添加
CTestDialog dlg;
dlg.DoModal();
5.對應的菜單項添加WM_COMMAND消息,在命令響應函數中DoModal/Create/ShowWindow()你的對話框即可。
D. java 檢查檢測文件是否有bom頭
下面這個可以將bom頭過濾
byte[] allbytes = line.getBytes("UTF-8");
for (int i=0; i < allbytes.length; i++)
{
int tmp = allbytes[i];
String hexString = Integer.toHexString(tmp);
// 1個byte變成16進制的,只需要2位就可以表示了,取後面兩位,去掉前面的符號填充
hexString = hexString.substring(hexString.length() -2);
System.out.print(hexString.toUpperCase());
System.out.print(" ");
}
E. java怎樣保存xml文件為UTF-8 + bom
utf和gbk都可以表示中文啊,用記事本打開的時候,記事本會自動檢查文件的編碼,並用對應的編碼顯示,所以沒亂碼
但是如果一個utf8的文件,你強制要用gbk去顯示,肯定亂碼
F. java script 和 html 什麼關系BOM 是什麼意思
HTML是負責靜態頁面的,javascript是用來做一些動態功能的(比如表單驗證、圖片切換、廣告懸浮等)。BOM類似於DOM,不過側重於瀏覽器相關的對象。
G. java能不能寫入有帶BOM的UTF-8格式的文件
正常的話不行,不過可以直接用2進制寫BOM頭。就變成BOM了。