网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.What Is Java.
.JBuilder2005 Struts深度体验之新.
.实体bean的承诺.
.Tomcat 服务器Server.xml的关键参.
.EJB3 Persistence API标准化持久.
.Java正则表达式详解(下).
.eclipse新特性--JFace Data.
.Struts源代码阅读(Commons-Vali.
.SCA及未来的开发.
.设计移动 Web 服务.
.Java Server Faces建立.
.用javaZoom的uploadBean扩展requ.
.初学者入门实践:如何在Tomcat上.
.轻松处理命令行参数.
.初学者入门:Structs中基本配置入.
.高级图像处理图像I/OAPIRC1.0.
.Java中的this和super的用法.
.Java程序的反加密.
.Java嵌入式开发讲座 第二讲.
.EJB入门文章.

关于java中字符编码的一点心得,可能对初学者有点帮助

发表日期:2008-1-5



  这是张孝祥老师的Java就业培训视频教程里面的一道题目(有所变动):
编写下面的程序代码,分析和观察程序的运行结果:

import java.io.*;
public class TestCodeIO {
      public static void main(String[] args) throws Exception{
            InputStreamReader isr = new InputStreamReader(System.in,"iso8859-1");
            BufferedReader br = new BufferedReader (isr);
            String strLine = br.readLine();
            br.close();
            isr.close();
            System.out.println(strLine);
      } 
}
运行程序后,输入“中国”两个字,输出结果为 ???ú
请按照下面两种方法修改上述程序,是输入的中文能够正常输出
1。修改程序中的语句
              InputStreamReader isr = new InputStreamReader(System.in,"iso8859-1");
2。不修改上面的语句,修改下面的语句
              System.out.println(strLine);


第一种该法很简单,只要改成下面这样就可以了,这里不具体讨论
            InputStreamReader isr = new InputStreamReader(System.in,"gb2312");


这里我要具体讨论的是第二种该法怎么改

起初我是这样改的
          System.out.println(new String (strLine.getBytes(),"iso8859-1"));
输入“中国”后输出的结果虽然不是上面所述的乱码,但是还是乱码,显然这种该法是不正确的!

这里我要感谢 软件民工  告诉我的正确改法,使我恍然大悟
           System.out.println(new String (strLine.getBytes("iso8859-1")));

这两种改法究竟有什么区别呢?为了方便大家阅读,我先把正确和错误的改法帖出来:
import java.io.*;
     public class TestCodeIO {
           public static void main(String[] args) throws Exception{
                 InputStreamReader isr = new InputStreamReader(System.in,"iso8859-1");
上一篇:关于struts的文本域 人气:800
下一篇:关于动态绑定的理解 人气:1451
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐