当前位置:  技术问答>java相关

还是中文乱码的问题

    来源: 互联网  发布时间:2015-10-02

    本文导语:  我在servlet用request.getParameter中取jsp页面上输入的汉字 能不能不用每次都new String(names.getBytes("ISO-8859-1"),"GB2312") 这样的转码太麻烦了,有没有什么好的方法可以一下搞定的? | 我前几天也碰到...

我在servlet用request.getParameter中取jsp页面上输入的汉字
能不能不用每次都new String(names.getBytes("ISO-8859-1"),"GB2312")
这样的转码太麻烦了,有没有什么好的方法可以一下搞定的?

|
我前几天也碰到了难搞的中文乱码,我借用了wjmmml的一个程序,在输入数据库时直接调用这个函数,这个程序我贴出来给你参考一下吧,顺便借个地方谢谢wjmmml。


|
解决问题的具体思路、方法
  Java采用Unicode码编码方式,中英文字符均采用16bit存储。既然存储英文信息是正确的,根据一定规则,将中文信息转换成英文信息后存储,自然不会出现截尾现象。读取信息时再进行逆向操作,将英文信息还原成中文信息即可。由GB2312编码规则可知,汉字一般为二个高位为1的ASCII码,在转换时将一个汉字的二个高位1去掉,还原时再将二个高位1加上。为了处理含有英文字符的中文字串,对英文字符则需要加上一个Byte 0标记。
  以下提供的两个公用静态方法,可加入任何一个类中使用。
  将中英文字串转换成纯英文字串
  public static String toTureAsciiStr(String str){
  StringBuffer sb = new StringBuffer();
  byte[] bt = str.getBytes();
  for(int i =0 ;i〈bt.length;i++){
  if(bt[i]〈0){
  //是汉字去高位1
  sb.append((char)(bt[i]&&0x7f));
   }else{//是英文字符 补0作记录
  sb.append((char)0);
  sb.append((char)bt[i]);
   }
   }
  return sb.toString();
  }



  将经转换的字串还原
  public static String unToTrueAsciiStr(String str){
   byte[] bt = str.getBytes();
   int i,l=0,length = bt.length,j=0;
   for(i = 0;i〈length;i++){
   if(bt[i] == 0){
   l++;
   }
   }
   byte []bt2 = new byte[length-l];
   for(i =0 ;i〈length;i++){
   if(bt[i] == 0){
   i++;
   bt2[j] = bt[i];
   }
   else{
   bt2[j] = (byte)(bt[i]|0x80);
   }
   j++;
   }
  String tt = new String(bt2);
  return tt;
  }



  上例在实际编程中效果很好,只是存储的中文信息需要经过同样处理,才能被其他系统使用。而且如果中文字串出现英文字符,实际上增加了额外的存储空间。


|
呵呵
to:: Smilings(小不点) 客气了不是!呵呵,没什么的。

在置顶的文章里,有我总结的一篇,你好好看看吧,对有帮助的,其中很详细的。

    
 
 

您可能感兴趣的文章:

  • gdbtui 中文注释乱码?设置了charset为UTF-8还是乱码,怎么办?
  • 还是那个关于update的问题呀,还是解决不了呀? iis7站长之家
  • 我用mount -o charset=cp950挂载了,为什么还是有乱码?
  • 为什么这样还是显示乱码?
  • 【有谁能帮帮我】...Liunx上网的乱码问题,查了很多资料还是没有解决,帮帮我呀,好郁闷。
  • 请教:linux里取出mysql的数据为乱码,作了编码处理还是不行(java)
  • 还是乱码问题,急急急~~~~
  • 怎么把中文参数从弹出窗口传递到其父窗口?(用URLEncoder.encoder传过去还是乱码).
  • 弱智问题 arm7板 uboot显示正常,超级终端内按键无反应,自动加载uclinux显示乱码,usb串口线的问题还是。。?
  • 还是中文问题:url(/test/a/救救我.html),其中,test.jsp接受request参数并打印,weblogic6.0上运行,却总是乱码!
  • 使用sendmail发信时,subject出现乱码的问题。(使用了标准的base64编码,outlook的时候看是正常编码,别的服务器还是有乱码例如mozilla收
  • 救急!!!请帮我看看这段程序?为什么还是乱码?
  • 痛苦啊,按照书上的方法,在将数据存入数据库前,将数据转为“iso-8859-1”字符集的字符,为什么存入后还是乱码
  • 菜鸟低分求教(可用分快没了):硬盘装Linux,启动时出现乱码(看不是是字母还是其他),后有光标闪烁,然后就不动了
  • 怎样在服务器端判断客户使用的浏览器是使用的简体中文的还是英文的还是日文的或者其他的?
  • 如何判断输入的是中文还是非中文?
  • ubantu中国站上下的CD镜像包含中文版本还是没有中文版?
  • 还是中文问题。
  • 还是中文问题……sigh
  • 如何区分数据是英文还是中文?
  • RH7.3的中文支持还是不敢恭唯,郁闷~~~~~~~~~~~
  • 在 linux 使用Java 的兄弟请帮忙--还是中文问题???
  • 还是javamail附件中文名字显示问题。
  • 小女子也想玩玩Linux,初玩是用中文版的还是英文版的比较合适?
  • 请问怎样判断一个字符是中文字符还是英文字符?(空)
  • 想学linux下程序开发,不知道买哪本书好《UNIX环境高级编程》(中文第一版)还是《UNIX环境高级编程》(英文第二版)
  • 还是昨天的url传递中文问题,又出现新的问题
  • 唉!还是中文问题!!!!!!!!!!
  • ubuntu8.10安装Adobe Reader后还是无法显示中文!
  • 还是中文问题,救急
  • 还是jni的中文问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 还是那个关于update的问题呀,还是解决不了呀?
  • swing的问题还是jbuiler的问题??
  • ./configure时,提示 missing /usr/.../version.h文件?是系统问题?还是安装程序的问题?
  • 还是关于消息框的问题 applet中的问题
  • 还是一个安装问题,周末一直为这个问题缠着
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • 是delete的问题还是系统问题
  • 新手问题,在linux下c/c++开发是在图形界面下还是字符界面下进行?
  • 速急!!!还是有关于汉入问题!!!大哥们速帮忙,小弟在线等待!!!
  • 还是linux安装的问题
  • 问一个弱弱的问题,linux该怎么念?是理纳克斯还是留尼克斯?
  • nandflash 驱动出了问题还是内核配置出了问题?
  • 还是有问题啊,JSP查数据库!
  • 还是Oracle问题
  • 多播的问题,感觉还是有一点没理解
  • Linix下的Tomcat,为什么我的Applet找不到?在Windows环境下运行正常的,是我的路径问题,还是Tomcat 的设置问题?
  • 问题很简单,但是还是想问一下?
  • 还是gd升级的问题!!!
  • 还是老问题啊!!!高手吗?帮忙啊!LINUX 9.0安装时出错!
  • 还是Make的问题
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • jsp+bean还是jsp+ejb还是jsp+servlet还是asp+activex好?
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • 请问ResultSet返回的是全部数据,还是指针,还是其他什么?
  • 大家以后的发展方向是什么?能交流一下么?是就想学好专业知识,打一辈子工?还是自己开公司?还是要考研究生,使自己提高一个档次?还是想办法出国深造?发言比有分!!!
  • 程序里如何判断光驱里的是DVD盘,还是CD盘,还是一般的CD数据盘
  • linux新手想请问大家你们在linux下通常用什么开发语言和工具(C多点还是C++多点还是pascal ?还有工具方面?)
  • 你的桌面用的是LINUX还是UNIX还是WINDOWS?
  • 请问EJB高手,EJB主要用在b/s方式还是c/s,还是两这都可?有用过jBoss的吗?有配置文档吗?一定给分!!
  • linux下的c/c++语言开发,最好的ide是gcc还是kylix还是其他
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3