• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    3年前 (2015-05-02)  JAVA WEB |   抢沙发  43 
    文章评分 0 次,平均分 0.0

    在开发中总遇到乱码问题。所以自己在网上搜集并摘录在这里,以便以后查询使用。
    1.对于在myeclipse中JS注释文字乱码问题
    对于乱码问题,主要 有MyEclipse的设置有关,可以在MyEclipse的选项卡中找到Editors此选项卡下的jsp选项卡窗口,有一个Encoding属性值, 可选择Chinese即可解决显示乱码的问题!对于乱码是不会导致myEclipse语法错误提示的!
    现在就重点讲讲导致 语法错误的问题解决方案,对于一般的web应用开发,我个人不建议使用myEclipse这个插件,个人推荐使用WTP这个插件,而且目前官网也将此插件 结合到Eclipse之中,可见此插件之易用性和可用性。在Eclipse官网上下载Java EE Developers 这个版本即可!此版本非常适用于WEB项目的开发。此插件可解决上述楼主的所有问题。但不建议与myEclipse一些使用。
    2.在使用tomcat服务器时,如在跳转路径中传递中文参数会出现乱码现向!
    如:以

    两种方式提交的变量flag在LoginServlet中用 request.getParameter(“flag”);时就会出现乱码问题。
    解决:在tomcat/conf/servlet.Xml中 加入一段代码:

    <Connector port="8090" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   debug="0" connectionTimeout="20000"
                   disableUploadTimeout="true" URIEncoding="true"/>

    3.如果uri中转递的是参数要发送到jsp页面,则必须在接受代码的jsp页面里面还要加入代码:
    <% request.setCharacterEncoding("gb2312");%>
    4.在.js文件中加入了中文,添加到MyEclipe时就变成乱码了,但是网页能够正确显示中文,但是乱码怎么解决?
    在 myeclipse 的 preferences-属性 中搜索 javascript,搜到以后把它的Editing files 下的 Encoding 改为 Chinese,National Standard 就好了 也就是 GB18030 .
    5.对于在浏览器中JS输出文字乱码问题
    如果web application的编码规则是utf-8,如网页头中的:

    那么js文件中如果有中文输出就会出现乱码,解决此个问题可在引用javascript输出的地方加上charset="gb2312" 或 charset="big5"(假设输出的是Big5繁体字)。
    例:

    6.引用多个js文件,inntext输出中文乱码问题
    原来写的js文件,从来没有关心过他们的编码问题。可是后来不知怎么的,发现一些单独都好使得文件,被同时引用到一个页面中时,特别是JS里面有中文时。有时候就出现中文在浏览器输出乱码问题。一个一个的看编码。最后找到了原因。
    一般我们在中文OS 中保存文本文件,默认都是一GB2312编码保存的,可是当我们在脚本代码中写有"?"这些符号后,保存文件会提示让你保存为Unicode格式。如果你 不加理会,仍然保存为GB2312,那么下次打开这个文件你会发现"?"变成"?"@_@。这样的字符还有一些,比如在Windows中的高位ASCII 字符,它们的Unicode定义就是一些比较怪异的字符,如果用GB2312强行存这些字符,打开后会被两两合并为汉字或成为乱码。
    回到我们脚本文件编 码的问题上来,如果我们在同一个页面中引用多个JavaScript文件,而这些文件的保存编码又不同(有GB2312有又Unicode),就可能出 错。当然不是总都出,这也是最要命的。由于对于7bit ASCII码,不管什么编码都是通用的,也不会有解码问题,可是如果文件里包含了汉字,就有可能出错了。
    比如,GB2312保存的js文件: var str = '这是一个GB2312编码文件。';
    var description = 'this file saved as GB2312 encoding.'; 可以在选择编码为GB2312的IE中正确的被引用。
    Unicode编码保存的js文件: var strW = '这是一个Unicode编码文件。';
    var descriptionW = 'this file saved as Unicode encoding.'; 可以在选择编码为Unicode的IE中正确的被引用。
    而这两个文件在下列引用中,不管怎么选择IE编码也是不能正确执行结果:

    ( <html>
    <head>
        <title>Test Encode</title>
        <script src="Unicode.js" language="javascript"></script>
        <script src="GB2312.js" language="javascript"></script>
    </head>
    <body>
    <script language="javascript">
        alert(strW + '\r\n' + descriptionW);
        alert(str + '\r\n' + description);
    </script>
    </body>
    </html>
    

    我的解决方法是:还是要和页面的编码保持一致。比如我的ftl文件编码是utf-8的。那么我一般会把JS文件用记事本打开。然后另存。名字不改。只是把下面的编码改为“utf-8”格式的。
    然后引用JS
    然后从新启动服务。问题就解决了!
    7.使用freemarker+springMVC的框架,不知道在.ftl文件中如何截取指定长度的中文字符串,freemakert有自己的函数
    时期也可以用CSS来控制。但是有一个弊端。就是只能控制显示一行的数据。如果是多行的就不行了。正好我用的是freemarker框架。有自己的函数。否则就要用JS或者是在服务端进行控制

    <#if news.title?length lt 13 >   
           ${news.title}
           <#else>
           ${news.title[0..12]}...
    </#if>

    顺便说下:ISO8859-1、utf-8和gb2312的意义
    ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。
    而gb2312是标准中文字符集。
    UTF-8 是 UNICODE 的一种变长字符编码,即 RFC 3629。简单的说——大字符集。可以解决多种语言文本显示问题,从而实现应用国际化和本地化。

    对系统来讲,UTF-8 编码可以通过屏蔽位和移位操作快速读写,排序更加容易。UTF-8 是字节顺序无关的,它的字节顺序在所有系统中都是一样的。因此 UTF-8 具有更高的性能。

    不过如果是纯英文的话,用什么都可以,用GB2312也没问题。
    8.我在重新GHOST我的机器以后,启动myeclips出现“could not create the java virtual machine”的错误的解决方法
    1、在D:\Program Files\MyEclipse 6.1 Blue\eclipse有个eclipse.ini文件,原来的配置如下:
    -showsplash com.genuitec.myeclipse.blue.product.ide --launcher.XXMaxPermSize 256m -vmargs -Xms128m -Xmx512m -Duser.language=en XX:PermSize=128M -XX:MaxPermSize=256M

    2、现在将原来配置改成如下所示:
    -showsplash com.genuitec.myeclipse.blue.product.ide --launcher.XXMaxPermSize 256m -vmargs -Xms128m -Xmx512m -Duser.language=en -XX:PermSize=64M //修改此处 -XX:MaxPermSize=128M

    只要修改以上代码后,myeclipse便可以启动了
    另,此配置eclipse中tomcate 也有,最大内存不可大于自身内存.
    9.在myeclipse中编辑显示ftl文件,安装freemarker IDE插件
    我用的是myeclipse环境来做开发,但是发现刚开始点击FLT无法编辑和显示 。办法如下:
    1.先到http://freemarker-ide.sourceforge.net下载插件
    2. 解压,将hudson.freemarker_ide_0.9.14文件夹放入eclipse下或者myeclipse下的eclipse下的的plugins文件夹。
    3. 发现hudson.freemarker_ide_0.9.14下的 freemarker-2.3.6.jar包是比较早的版本,用新的freemarker-2.3.15.jar替换之,把MANIFEST.MF里的 Bundle-ClassPath也改为freemarker-2.3.15.jar
    4. 退出Eclipse或者myeclipse再重启,在window --> Preferences 左边的树形栏里出现FreeMarker Editor一项新的内容。在General --> Editors --> File Associations下,为*.ftl文件添加(add)FreeMarker Editor 作他们关联的编辑器(associated editors) , *.ftl文件的默认编辑器就是FreeMarker Editor。

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享