使用eclipse开发java web网页——字符集问题

在Windows上运行eclipse默认的项目编码是Windows操作系统的编码也就是GBK编码,文件编码比如xml和jsp编码默认是ISO-8859-1,西欧字符集只支持英文输入,当我们保存中文时也会提示我们是不是要保存为UTF-8,点击确定后也会保存成utf-8,下面我们自己来设置项目和文件的编码

  首先,单击菜单栏"Window"选择"Preferences"

  

  然后在左侧选择General->Workspace,右侧会看到Text file encoding选项,这里默认是Default:GBK编码,我们选中Other 选择UTF-8编码

  

  然后,单击"OK"按钮,完成设置,现在我们就设置好了工作空间的编码,就是我们以后的开发环境下所有文件,如果没有指定,那么都将统一是utf-8编码的,这就是符合上面的优先级的原则

  当然我们还可以对项目,目录,单个文件的编码进行设置,比如我们在项目管理器中对需要设置的对象上面右击,选择"Properties"

  

  然后左侧默认是Resource,右侧我们看到Text file encoding下面选中的是Inherited from container (UTF-8),意思是默认继承自容器编码,因为上一步我们设置工作空间为UTF-8编码,所以这里如果我们不指定编码那么将会继承容器编码

  

  好的,那么同理我们可以根据优先级的原则,指定目录编码,包编码,每一个文件编码,当然推荐全部继承于工作空间编码,并设置为utf-8的编码,这样所有的文件保存在硬盘上都是纯utf-8编码,这样就设置好了java web的字符集

  通常我们在开发中,指定工作空间编码和所有文件编码都统一后,数据库,数据表,连接数据库的指定编码都要全部保持统一,个别需要转换的地方单独转换即可,另外页面声明的编码也要全部统一,这样的话浏览器能应用程序都可以正确的识别并解析,

  服务器编码一般我们都会注释掉,就是说全部以文件本身传递的编码为默认编码,比如Nginx、Apache一般都是注释的当然如果要设置也必须设置为统一的,这样服务器才能正常运行应用程序

  最后是程序运行的编码,这个一般也是注释的,比如java是服务器交给jre环境去运行,php是服务器交给php模块去执行,那么这些编码如果设置也必须在配置文件中统一,另外对于java编译的过程,eclipse会根据项目设置编码去编译,但是如果使用cmd命令编译的话会出现无法映射的情况,这就是命令行默认使用操作系统编码GBK来进行编译,所以会报错,这个时候我们执行编译的命令时应该给编译器指定编码:

  比如:javac -encoding UTF-8 xxx.java这样编译问题就解决了

  最后,我们只要对项目整体每个层次的字符集保持一致,都弄清楚,从本质上分析问题,那么编码问题就可以彻底解决了

posted @ 2017-12-13 16:47  天青色等烟雨,  阅读(1028)  评论(0编辑  收藏  举报