1.在url附帶中文引數,可以直接讀取。
例如:<%= request.getparameter("showword")%>
2 與資料庫有關的各種sql操作
這裡使用的access沒有發生問題。
jdbc中文處理
一,取中文
處理:將資料按「iso-8859-1」格式轉為位元組陣列,再按系統預設編碼格式(default character encoding)轉為string,即可在ta和list中正確顯示。
程式段如下:
dbstr2 = results.getstring(1);
dbbyte1 = dbstr2.getbytes("iso-8859-1");
dbstr1 = new string(dbbyte1);
二,寫中文到db
處理方式與以上相逆,先將sql語句按default character encoding轉為位元組陣列,再按iso-8859-1轉為string,然後送執行,則中文資訊可正確寫入db。
sqlstmt = tf_input.gettext();
dbbyte1 = sqlstmt.getbytes();
sqlstmt = new string(dbbyte1,"iso-8859-1");
_stmt = _con.createstatement();
_stmt.executeupdate(sqlstmt);
取db2的資料:
例句 select * from test where title='誰是傻瓜'.在jdbc-odbc驅動下連db2,不管是原句還是對sql語句進行編碼後都死活通不過。換了ibm的jdbc直接驅動後,對sql語句編碼後程式可以通過。
我的解決方法:
對取出的資料進行編碼:
byte a=s.getbytes("gbk");//不是iso-8859-1
s=new string(a);
處理漢字的公用函式
public string transstring(string s)
if(s==null) s="";
trybyte a=s.getbytes("gbk");
s=new string(a);
catch(exception e)
s="出錯:"+e.getmessage();
return s;
3 讀取html form表單中遞交的中文值
在jswdk中需要加以編碼,較為簡潔的寫法如:
string name1=new string(request.getparameter("user_id").getbytes("iso8859_1"));
另外,在jdk1.3的支援下,不需要加入<%@ page contenttype="text/html;charset=gb2312" %>
而在jdk1.2.2下面,即使2種方法同時運用也很不穩定。
而在resin平台,情況較好。只要在頁面第一行加入:
<%@ page contenttype="text/html;charset=gb2312" %>即可正確處理中文。如果再加編碼則反而不對。
4 session中包含的中文
在jswdk中,奇怪的是如果從form中讀出的值經過編碼則可正確顯示;但直接賦予中文值則不行。resin平台很好,同上。
5 對於對變數賦中文值後正確顯示中文。
例如以下程式:
<%@ page contenttype="text/html;charset=gb2312" %>
string hi="你好";
byte tmpbyte=hi.getbytes("iso8859_1");
hi=new string(tmpbyte);
out.print(hi);
同樣是jswdk1.0.1,以上的表示方法在jdk1.2.2中沒有問題,但在jdk1.3下卻無法顯示。resin平台很好,同上,經過測試,只需要在中補上,而不需要<%@ page contenttype="text/html;charset=gb2312" %>也能正確顯示中文。
java漢字取拼音
package info.util import net.sourceforge.pinyin4j.pinyinhelper import net.sourceforge.pinyin4j.format.hanyupinyincasetype import net.sourceforge.pinyi...
JAVA漢字轉拼音
工作原因,需要將中文轉成拼音放置到資料庫的字段中,以供搜尋使用.下面放上 以及說明.見面是具體 mport net.sourceforge.pinyin4j.pinyinhelper import net.sourceforge.pinyin4j.format.import net.sourcefo...
python漢字的處理
計算機裡不能直接的處理各種文字,需要將各種文字編碼之後存入計算機進行後續的處理。不管是漢字的編碼還是其他語言文字元號的編碼,都是使用01的不同組合序列來表示不同的符號。ascii編碼 american standard code for information interchange,美國資訊互換標...