1回顶部 相关连接:深入剖析Java编程中的中文问题及建议最优解决方法--上篇 4、中文问题的分类及其建议最优解决办法 了解以上JAVA处理文件的原理之后,我们就可以提出了一套建议最优的解决汉字问题的办法。 具体解决办法如下: 1、 针对直接在console上运行的类 //Read.java 图5 2回顶部 2、 针对EJB类和不可以直接运行的支持类(如JavaBean类) 由于这种类它们本身被其它的类调用,不直接与用户交互,故对这种类来说,我们的建议的处理方式是内部程序中应该采用字符流来处理程序内部的中文字符串(具体如上面一节中一样),同时,在编译类时用-encoding gb2312参数指示源文件是中文格式编码的即可。
针对Servlet,我们建议用以下方法: 在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的setContentType("text/html;charset=GBK");或gb2312来设置输出编码格式,同样在接收用户输入时,我们用request.setCharacterEncoding("GB2312");这样无论我们的servlet类移植到什么操作系统中,只有客户端的浏览器支持中文显示,就可以正确显示。如下是一个正确的示例: //HelloWorld.java 3回顶部 <body bgcolor="#FFFFFF" text="#000000" topmargin="5"> <form name="base" method = "POST" target="_self"> <input name="id" type="text" value="" size="30"> <a href = "JavaScript:Submit()">传给Servlet</a> </form></body></html> 其运行结果如图6所示: 图6 为避免JAVA程序和数据库之间数据传递出现乱码现象,我们建议采用以下最优方法来处理: 如:在mysql中,我们可以在配置文件my.ini中加入以下语句实现: 5、 针对JSP代码 由于JSP是在运行时,由WEB容器进行动态编译的,如果我们没有指定JSP源文件的编码格式,则JSP编译器会获得服务器操作系统的file.encoding值来对JSP文件编译的,它在移植时最容易出问题,如在中文win2k中可以很好运行的jsp文件拿到英文linux中就不行,尽管客户端都是一样的,那是因为容器在编译JSP文件时获取的操作系统的编码不同造成的(在中文wink中的file.encoding和在英文Linux中file.encoding是不同的,且英文Linux的file.encoding对中文不支持,所以编译出来的JSP类就会有问题)。网络上讨论的大多数是此类问题,多是因为JSP文件移植平台时不能正确显示的问题,对于这类问题,我们了解了JAVA中程序编码转换的原理,解决起来就容易多了。我们建议的解决办法如下: 1、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行: <%@page contentType="text/html; charset=gb2312"%>
4回顶部 //testchinese.jsp <%@page pageEncoding="GB2312"%> <%@page contentType="text/html; charset=gb2312"%> <%request.setCharacterEncoding("GB2312");%> <% String action = request.getParameter("ACTION"); String name = ""; String str = ""; if(action!=null && action.equals("SENT")) { name = request.getParameter("name"); str = request.getParameter("str"); } %> <html> <head> <title></title> <Script language="JavaScript"> function Submit() { document.base.action = "?ACTION=SENT&str=传入的中文"; document.base.method = "POST"; document.base.submit(); } </Script> </head> <body bgcolor="#FFFFFF" text="#000000" topmargin="5"> <form name="base" method = "POST" target="_self"> <input type="text" name="name" value="" size="30"> <a href = "JavaScript:Submit()">提交</a> </form> <% if(action!=null && action.equals("SENT")) { out.println("<br>你输入的字符为:"+name); out.println("<br>你通过URL传入的字符为:"+str); } %> </body> </html> 如图7是此程序运行的结果示意图: 图7 5、总结 在上面的详细分析中,我们清晰地给出了JAVA在处理源程序过程中的详细转换过程,为我们正确解决JAVA编程中的中文问题提供了基础。同时,我们给出了认为是最优的解决JAVA中文问题的办法。 6、参考资料
|
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤濠€閬嶅焵椤掑倹鍤€閻庢凹鍙冨畷宕囧鐎c劋姹楅梺鍦劋閸ㄥ綊宕愰悙宸富闁靛牆妫楅崸濠囨煕鐎n偅灏版繛鑹邦嚙閳规垹鈧綆鍋€閹锋椽姊绘笟鍥т簽闁稿鐩幊鐔碱敍濞戞瑦鐝烽梺鍦檸閸犳鎮″☉銏″€堕柣鎰絻閳锋棃鏌曢崱妯烘诞闁哄苯绉烽¨渚€鏌涢幘鍗炲缂佽京鍋ゅ畷鍗炩槈濡》绱遍梻浣告啞娓氭宕㈡ィ鍐ㄦ辈闁挎棃鏁崑鎾诲礂婢跺﹣澹曢梻浣告啞濞诧箓宕滃☉銏犲偍闁归棿鐒﹂崐鐢告煕韫囨搩妲稿ù婊堢畺濮婃椽鏌呴悙鑼跺濠⒀冾嚟閳ь剝顫夊ú鎴﹀础閸愬樊鍤曞ù鐘差儛閺佸洦绻濊閸庤櫕绂嶉幆顬″綊鏁愰崶鈹库偓濠冧繆閹绘帞澧涘ǎ鍥э躬椤㈡稑顫濋浣団晠姊虹紒姗嗘畷鐎光偓缁嬫娼栨繛宸簻瀹告繂鈹戦悩鎻掆偓鎼侊綖鎼淬劍鈷戠紒瀣儥閸庢劙鏌熼崨濠勬憙妞わ絿鍋撶换婵嬪閿濆棛銆愬銈嗗灥鐎氼噣骞戦姀銈呭耿婵炴垶鐟ч崢浠嬫⒑鐟欏嫭绶查柛姘e亾缂備降鍔岄…鐑藉蓟瀹ュ牜妾ㄩ梺鍛婃尰瀹€绋跨暦瑜版帒鍨傛い鏃傚亾濞堥箖姊洪崫鍕窛闁哥姵鎸惧褔鍩€椤掆偓閳规垿顢欓弬銈勭返闂佸憡鎸婚惄顖炪€佸▎鎾冲耿婵炴垶鐟㈤幏娲煟閻樺厖鑸柛鏂胯嫰閳诲秹骞囬悧鍫㈠幍闂佸憡鍨崐鏍偓姘炬嫹 (0) +1 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳婀遍埀顒傛嚀鐎氼參宕崇壕瀣ㄤ汗闁圭儤鍨归崐鐐烘偡濠婂啰绠荤€殿喗濞婇弫鍐磼濞戞艾骞堟俊鐐€ら崢浠嬪垂閸偆顩叉繝闈涱儐閻撴洘绻涢崱妤冪缂佺姵濞婇弻宥堫檨闁告挻鐟х划璇差吋婢跺﹦锛熼梻渚囧墮缁夊绮婚鐐村€甸柨婵嗛閺嬫盯鎮峰▎娆戠暤闁诡喗顨婇弫鎰償閳╁啰浜堕梻浣虹帛閹歌煤閻旂厧钃熺€广儱顦悡娑樏归敐鍛暈闁诲繑鎸搁埞鎴︽倷閼碱剙顣堕梺鎼炲妼缂嶅﹤锕㈡担铏圭<缂備降鍨瑰顕€鏌¢埀顒佹綇閳规儳浜炬慨妯煎亾鐎氾拷 (0) +1 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闂佸湱铏庨崰妤咁敁閺嶎厽鈷戠紒瀣儥閸庢劙鏌涢妸銉﹀仴妤犵偛鍟灃闁逞屽墴閸┿儲寰勬繛鐐€婚柣搴秵閸撴稓绮eΔ浣风箚闁绘劦浜滈埀顒佸姍瀵彃饪伴崼鐔蜂簵闂佽法鍠撴慨鎾嫅閻斿吋鐓ユ繝闈涙-濡插摜绱掗悪鍛М闁哄被鍔岄埞鎴﹀幢濮楀牏绀婃繝纰樻閸嬪嫮鈧凹鍠氬Σ鎰板箻鐎涙ê顎撻梺鍛婄箓鐎氱兘鍩€椤掆偓閻倿寮诲☉銏犖╅柕澹啰鍘介柣搴㈩問閸犳牠鈥﹂柨瀣╃箚闁归棿绀侀悡娑㈡煕鐏炲墽鐓紒銊ょ矙濮婄粯鎷呴崨闈涚秺瀵敻顢楅崒婊呯厯闂佺鎻€靛矂寮崒鐐寸叆闁绘洖鍊圭€氾拷 (0) +1
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤濠€閬嶅焵椤掑倹鍤€閻庢凹鍙冨畷宕囧鐎c劋姹楅梺鍦劋閸ㄥ綊宕愰悙宸富闁靛牆妫楅崸濠囨煕鐎n偅灏版繛鑹邦嚙閳规垹鈧綆鍋€閹锋椽姊绘笟鍥т簽闁稿鐩幊鐔碱敍濞戞瑦鐝烽梺鍦檸閸犳鎮″☉銏″€堕柣鎰絻閳锋棃鏌曢崱妯烘诞闁哄苯绉烽¨渚€鏌涢幘鍗炲缂佽京鍋ゅ畷鍗炩槈濡》绱遍梻浣告啞娓氭宕㈡ィ鍐ㄦ辈闁挎棃鏁崑鎾诲礂婢跺﹣澹曢梻浣告啞濞诧箓宕滃☉銏犲偍闁归棿鐒﹂崐鐢告煕韫囨搩妲稿ù婊堢畺濮婃椽鏌呴悙鑼跺濠⒀冾嚟閳ь剝顫夊ú鎴﹀础閸愬樊鍤曞ù鐘差儛閺佸洦绻濊閸庤櫕绂嶉幆顬″綊鏁愰崶鈹库偓濠冧繆閹绘帞澧涘ǎ鍥э躬椤㈡稑顫濋浣団晠姊虹紒姗嗘畷鐎光偓缁嬫娼栨繛宸簻瀹告繂鈹戦悩鎻掆偓鎼侊綖鎼淬劍鈷戠紒瀣儥閸庢劙鏌熼崨濠勬憙妞わ絿鍋撶换婵嬪閿濆棛銆愬銈嗗灥鐎氼噣骞戦姀銈呭耿婵炴垶鐟ч崢浠嬫⒑鐟欏嫭绶查柛姘e亾缂備降鍔岄…鐑藉蓟瀹ュ牜妾ㄩ梺鍛婃尰瀹€绋跨暦瑜版帒鍨傛い鏃傚亾濞堥箖姊洪崫鍕偍闁搞劌缍婇幏鎴︽偄閸忚偐鍘繝銏f硾閻楀棝宕濆鑸电厽閹兼惌鍠栧顔芥叏婵犲懏顏犵紒顔芥瀹曞崬螖閳ь剟顢旂€涙ḿ绠鹃柛顐ゅ枑椤ュ牓鏌″畝瀣暤鐎规洘锕㈤、鏃堝礋椤掑倷閭梻鍌欑閹碱偊鎯屾径宀€绀婂ù锝呭閸ゆ洘銇勯弴妤€浜鹃悗瑙勬礀閻栧吋淇婇悜钘夘潊闁绘ê宕ˉ姘舵⒒娓氣偓閳ь剛鍋涢懟顖涙櫠閹绢喗鐓涢悘鐐插⒔閵嗘帡鏌嶈閸撱劎绱為崱娑樼;闁告侗鍨悞濠冦亜閹惧崬鐏柣鎾冲暣閺岋箑螣娓氼垱鈻撳┑鈥冲级閹倿寮诲鍥ㄥ珰闁肩⒈鍎疯閵囧嫰濮€閳繐缍婅棟閺夊牃鏅濈壕濂告煏婵炲灝鍔橀柛瀣ㄥ灲閺屸€崇暆閳ь剟宕伴幇顔剧當闁绘梻鍘ч崹鍌涖亜閺冨倵鎷℃繛鐓庨叄閺岋絾鎯旈妶搴㈢秷濠电偛寮堕敃銏犵暦閺囩喓闄勯柡澶婃濞差參銆佸璺虹劦妞ゆ帒瀚拑鐔兼煥閻斿搫孝闁绘帒鐏氶妵鍕箳閹存繍浠鹃梺鎼炲€曠粔褰掑蓟閺囩喎绶炴繛鎴炶壘椤曡京绱撴担闈涘妞ゎ厼鍢查~蹇撁洪鍕炊闂佸憡娲﹂崜娆戠玻濞戙垺鈷戠紒瀣儥閸庢垿鏌涚€c劌鈧稑螞閵忋倖鈷戠紓浣姑慨澶愭煕鎼存稑鈧繂鐣烽幇鏉垮瀭妞ゆ劧绲藉鍨攽閳藉棗鐏i柛妯犲嫮顩插Δ锝呭暞閸婂灚鎱ㄥΟ鐓庝壕閻庢熬鎷�闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;闁绘劗鍎ら崑瀣煟濡崵婀介柍褜鍏涚欢姘嚕閹绢喖顫呴柣妯荤垹閸ャ劎鍘遍梺鏂ユ櫅閸熴劍绂掗敂鍓х<妞ゆ梻鎳撴晶鎻捛庨崶褝韬柟顔界懇椤㈡棃宕熼妸銉ゅ闂佸搫绋侀崢鑲╃矆婢跺本鍠愰煫鍥ㄦ礀閸ㄦ繂鈹戦悩瀹犲缂佺媴缍侀弻锝呂熼悜妯锋灆濠碘槅鍋呯划鎾愁潖閾忓湱鐭撻柛鈩冾殔椤忓瓨绻涢崼鐔哥闁哄矉缍侀獮妯尖偓娑欋缚椤︿即姊洪崫鍕伇闁哥姵鐗犲濠氬炊椤掍焦娅囬梺閫炲苯澧撮柟顔斤耿閺屽棗顓奸崱娆忓箞闂備線娼ч悧鍡涘箯鐎n喖纾块柡鍐ㄧ墛閻撴盯鎮橀悙棰濆殭闁逞屽墯缁诲倿顢氶敐澶婇唶闁哄洨鍋熼鍥煙閼测晞藟闁逞屽墮瀵泛螣婵犲洦鈷掗柛灞剧懅椤︼箓鏌熺喊鍗炰喊鐎殿喚鏁婚、妤呭磼濠婂懐鍘梻浣侯攰閹活亞绮婚幋锔藉亗闁炽儲鍓氶悢鍡涙偣閸濆嫬濞囬柛顐犲劚閸戠娀骞栧ǎ顒€濡介柣鎾寸懇濮婃椽顢橀妸褏鏆犻梺鍝勵儍閸婃繈寮诲鍥ㄥ珰闁肩⒈鍓涢濠勭磽娴d粙鍝洪柟鐟版搐閻g兘骞掗幋顓熷兊濡炪倖鍨煎Λ鍕閹屾富閻庯綆浜滈銏犫攽椤栨哎鍋㈤柡宀嬬磿娴狅妇鎷犻幓鎺戭潛闂備焦鐪归崐婵堢不閺嶎厼钃熼柨婵嗘啒閻斿皝鏋庨柟顖嗗嫷鍞查梻鍌欐祰濡嫰宕导鏉戠獥闁哄稁鍘奸拑鐔兼煥濠靛棭妲哥紒顐㈢Ч閺屾稓浠︾紒銏$暦闁诲孩纰嶉惄顖氼潖閻戞ɑ濮滈柟娈垮櫘濡差喚绱撴担鍓叉Ш闁轰焦鎮傞獮鎴﹀閻橆偅鏂€闂佹悶鍎弲婵嬫儊閸儲鈷戠紒瀣濠€鎵棯閺夎法效闁诡喗锕㈤獮妯肩磼濡攱瀚奸梻浣告啞缁诲倻鈧凹鍙冮弫宥咁吋婢跺鍘卞┑鈽嗗灡娴滀粙宕戦姀銈嗙厓闁靛闄勯ˉ鍫⑩偓瑙勬礃閿曘垽銆佸▎鎾冲簥濠㈣鍨板ú锕傛偂閺囥垺鐓欓柟浣冩珪濞呭懎鈹戦敍鍕付闁宠鍨块、娆撳箚瑜嶉獮瀣攽椤旂》鏀绘俊鐐扮矙楠炲啴鎮滈挊澶岄獓闂佸湱枪鐎垫帡宕妸鈺傗拻濞达絿鍎ら崵鈧梺鎼炲€栭悧鐘荤嵁韫囨稒鏅搁柨鐕傛嫹>>
正在阅读:深入Java中文问题及最优解决方法-下深入Java中文问题及最优解决方法-下
2004-05-09 10:22
出处:CSDN
责任编辑:linjixiong