JAVA處理漢字

2021-04-12 14:00:31 字數 2013 閱讀 4165

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,美國資訊互換標...