第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問,若想判斷輸入的中文用戶名是否與給定用戶名相同,如何判斷?

我寫的代碼想加一個判斷用戶名密碼是不是給定用戶名密碼的功能,便多寫了一段程序,寫完之后發(fā)現(xiàn)用戶名為英文時判斷沒有問題,但是中文就有問題,這是我接收到用戶名密碼并處理的jsp文本中的一段代碼:

request.setCharacterEncoding("utf-8");

String un = ?URLEncoder.encode(request.getParameter("username"),"utf-8");

String pw= URLEncoder.encode(request.getParameter("password"),"utf-8");

if(URLDecoder.decode(un, "utf-8").equals("中文用戶名")&&pw.equals("12345"))

{

????……

}

經(jīng)過多次試驗我發(fā)現(xiàn)request.getParameter("username")已被轉(zhuǎn)碼(不是中文),un已被轉(zhuǎn)碼(不是中文),URLDecoder.decode(un, "utf-8")已被轉(zhuǎn)碼(不是中文),URLDecoder.decode(request.getParameter("username"), "utf-8")也被轉(zhuǎn)碼(不是中文),那如何獲得用戶輸入的中文字符并做出判斷呢?

正在回答

2 回答

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

分別設(shè)置Request的Post請求編碼和Response響應(yīng)編碼

想要設(shè)置Get的請求編碼,由于Get的請求編碼默認是ISO編碼,你需要從Request中獲取該中文內(nèi)容

String username=request.getParameter("name");

byte[] bytes=username.getBytes("ISO-8859-1");

username=new String(bytes,"utf-8");

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

shuoclarence 提問者

非常感謝!
2015-11-16 回復(fù) 有任何疑惑可以回復(fù)我~

jsp的頁面編碼你設(shè)置了沒有?pageEncoding是jsp文件本身的編碼contentType的charset是指服務(wù)器發(fā)送給客戶端時的內(nèi)容編碼,jsp要經(jīng)過兩次的“編碼”,第一階段會用pageEncoding,第二階段會用utf-8至utf-8,第三階段就是由Tomcat出來的網(wǎng)頁, 用的是contentType。
第一階段是jsp編譯成.java,它會根據(jù)pageEncoding的設(shè)定讀取jsp,結(jié)果是由指定的編碼方案翻譯成統(tǒng)一的UTF-8 JAVA源碼(即.java),如果pageEncoding設(shè)定錯了,或沒有設(shè)定,出來的就是中文亂碼。
第二階段是由JAVAC的JAVA源碼至java byteCode的編譯,不論JSP編寫時候用的是什么編碼方案,經(jīng)過這個階段的結(jié)果全部是UTF-8的encoding的java源碼。

<%@?page?language="java"?contentType="text/html;?charset=UTF-8"
????pageEncoding="UTF-8"??%>


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

shuoclarence 提問者

這兩個配置都設(shè)置了,都設(shè)置成了utf-8
2015-02-02 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

請問,若想判斷輸入的中文用戶名是否與給定用戶名相同,如何判斷?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號