zoukankan      html  css  js  c++  java
  • Eclipse Workspace编码与网页乱码

       今天用eclipse(其实是Aptana)写一个简单测试网页时,用浏览器打开网页发现乱码,HTML页面头是这么写的:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=gbk" />

       注意上面的<meta>标签,即我告诉浏览器当前页面是用GBK编码的。本以为一切都没问题,但是用浏览器打开就出现乱码了,如下:

       为什么会这样呢?

       我想了一会觉得应该查看下Eclipse默认的字符编码格式,通过Windows->Preferences->Workspace->Text file encoding打开,如下:

       可以看到我的eclipse默认设置文件编码格式为UTF-8。

       那这个跟乱码有关系吗?

       当然有关系,问题恰出于此。下面我来仔细说下。

    1、eclipse设定了文本文件默认编码方式为UTF-8,所以我编写的HTML页面中的中文也都是按UTF-8进行编码的
    2、<meta>头标签设置了charset属性,只是告诉浏览器当前HTML页面是按GBK编码的
    3、浏览器解析页面时,发现<meta>标签指定了字符编码为gbk。而根据第一步我们知道HTML页面实际上是按UTF-8编码的,又GBK编码和UTF-8编码不是兼容的,所以自然就出现乱码了

       真相大白后,发现原理很简单。我只需要修改<meta>标签的charset值为utf-8,就没有乱码了。这还能解释各位包括我自己以前遇到的一个现象:从网上下别人的代码文件,拷贝到eclipse下出现乱码。原因也是别人的代码文件的编码方式和eclipse默认的文件编码方式不一致。

       这个例子给我们的启发是:

    要想最大可能地避免乱码,最简单的方法是保证所有可以设置的地方编码一致。比如这里我设置<meta>标签的charset属性值为utf-8就不会出现这种问题了。

       顺便再提下,我们也可以单独为每个工程项目设置字符编码,如下(Sudoku项目):

       而且也可以单独为某个文件设置字符编码格式:

       eclipse的全局字符编码、项目的字符编码、某个文件的字符编码,优先级由低到高。

  • 相关阅读:
    android scroll 中 scroll Bar 修改
    android 在代码中安装apk的方法
    android JSON 的应用
    android 混淆相关 proguard
    listView 相关的优化设置
    android 名称解释
    android Gallery 两侧阴影实现
    Service 详解
    使用alias 简化命令
    android 动画小结
  • 原文地址:https://www.cnblogs.com/feichexia/p/eclipseandwebpageencoding.html
Copyright © 2011-2022 走看看