`

Grails引发的中文乱码问题

阅读更多

由写Grails过滤不良信息的Service引发的中文乱码问题

在一个Grails项目里面,我想写一个过滤不良信息的Service,而将过滤的规则放置在xml文件之中。

以下xml文件放置不良信息,包含单词、词组和句法,支持正则表达式:

<filter>
<words>
<word>fuck</word>
<word>反人民</word>
<word>去死吧</word>
<word>kill</word>
<word>bitch</word>
</words>
<phrases>
<phrase>asshole</phrase>
<phrase>beatyou</phrase>
</phrases>
<grammars>
<grammar>杀死*你</grammar>
<grammar>kick.*ass</grammar>
<grammar>impud.nce</grammar>
</grammars>
</filter>

然后是一个完成过滤功能的Service:

classFilterService...{
def
privatestaticnode=newXmlParser().parse(newFile('./config/filter.xml'))
staticStringfilter(Stringsource)...{

defsubstitution
=node.substitution.text()
defsensitive
=[node.words.word*.text().join('|'),
node.phrases.phrase
*.text().join('|'),
node.grammars.grammar
*.text().join('|')].join('|')

if(!source||!sensitive)returnsource
returnsource.replaceAll(sensitive,substitution)

}

}

就这样的代码,结果在Grails运行时出现中文问题,并且不止是页面,在filter方法里面就已经无法正确显示中文,而Service中同样的代码在普通Groovy应用程序中就没有中文问题。

按照以前J2EE开发的经验,尝试使用如下方法:

StringresultString=newString(testString.getBytes("iso-8859-1"),"UTF-8")

依旧乱码……

再次尝试:增加定义的运行参数-Dfile.encoding=UTF-8
无效……

xml文件中加入

<?xmlversion="1.0"encoding="UTF-8"?>

仍然无效……

 


 

琢磨了半天,得出解决方案:

譬如打算将整个项目编码统一成UTF-8格式的,我使用Eclipse开发,我的Eclipse默认的的编码是GBK的,那么这个可以保持不变,在项目上单击右键,选择Properties中的Resource,将Text file encoding设置成UTF-8。

注意:这样的后果是项目groovy等文件中原本使用GBK的中文会变成乱码!因此请选择合适的编码。

之后删除运行参数-Dfile.encoding=UTF-8,为什么使用了自定义运行编码参数反而出乱码,我也不知道。

再做一则改动

//将原来的
defnode=newXmlParser().parse(newFile('./config/filter.xml'))
//改为
defnode=newXmlParser().parseText(newFile('./config/filter.xml').getText())

最后,页面上面老规矩,加上<meta http-equiv="Content-Type" content="text/html; charset=GBK" />就可以了。

如果你的编码是GBK的,一样处理。

 

文章系本人原创,转载请注明作者和出处

分享到:
评论

相关推荐

    Grails1.1中文文档

    当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat ...本文档将带你从Grails入门开始,最终能够使用Grails框架建设Web应用程序。

    Grails 中文参考手册

    《Grails 中文参考手册》是一本全面介绍Grails框架的指南,旨在帮助开发者快速上手并深入理解Grails的各个核心概念和技术。Grails是一个基于Groovy语言的开源Web应用框架,它提供了高效的开发环境和强大的功能,使得...

    Grails中文参考手册

    "Grails 中文参考手册" 是一套详细的 Grails 学习资料,涵盖了框架的所有核心组件、最佳实践和使用方法,帮助开发者快速掌握 Grails 开发技能。 总之,Grails 是一个强大而灵活的 Web 开发框架,结合 Groovy 的优点...

    grails中文参考手册

    《Grails中文参考手册》是针对Groovy编程语言构建的Web应用框架——Grails的一份详尽学习资料。Grails以其高效、灵活和强大的特性,成为开发人员在Java平台上构建Web应用的热门选择。这份手册旨在帮助初学者快速上手...

    Grails1.1中文文档(CHM)

    Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...

    grails学习遇到的问题

    在学习Grails的过程中,初学者可能会遇到一系列的问题。...此外,参考Grails的官方文档,例如中文网站手册(http://www.21487.com/grails/menu.html),以及在线社区和教程,都是解决问题的有效途径。

    Grails Grails Grails

    《Grails1.1中文文档》是Grails 1.1版本的官方中文指南,包含了框架的详细介绍、安装指南、基本概念、MVC模式的应用、GORM的使用、服务层、控制器、视图、国际化、测试等方面的内容。通过阅读这份文档,开发者可以...

    grails中文入门简介

    Grails框架的中文入门资料较为稀缺,因而这份文档显得尤其宝贵。文档涵盖了从安装、配置、Web开发、服务层、测试、国际化、安全到插件使用等多个方面的详细介绍,是Grails新手学习的宝贵资料。通过这份文档,开发者...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    二、Grails中文文档的价值 1. 学习入口:对于中文开发者来说,中文文档降低了学习Grails的门槛,帮助理解和掌握Grails的基本概念、框架结构、开发工具以及最佳实践。 2. 快速上手:文档通常包含安装指南、教程、...

    Grails 1.1 中文手册 chm

    Grails 最新的 v1.1版的中文文档,chm格式,Grails是一套快速开发Web应用的开源框架,基于Groovy编程语言,并构建于Spring、Hibernate和其它标准Java框架之上,能为大家带来超高效率的一站式框架。

    Grails1.1中文文档.rar

    通过阅读《Grails1.1中文文档.chm》和解压后的《Grails.rar》文件,你可以获得详细的框架指南、API文档和示例代码,从而加速学习进程。对于初学者来说,这份文档将是你理解Grails 1.1及其开发流程的重要参考资料。

    Grails超全操作手册(中文版)

    Grails超全中文操作手册,无论是大神还是初学者都很适用的操作文档。很全很详细,希望能帮到学习grails框架的你。

    Grails权威指南 中文版

    《Grails权威指南 中文版》是一本专注于Grails框架和Groovy语言的中文版技术书籍。本书的作者是Grails项目负责人Graeme Keith Rocher,他将自己对于Grails框架的深刻理解和使用经验编纂成书,以便向读者全面介绍这一...

    Grails入门精通及中文API

    7. 阅读Grails中文API文档,解决实际开发中的问题。 在学习过程中,还可以参考在线教程、视频课程和社区论坛,如Stack Overflow和Grails官方社区,以便获取更多实践经验和帮助。 总之,Grails作为Java平台上的快速...

    grails1.1中文文档

    这份“Grails1.1中文文档”是专为初学者准备的指导材料,帮助他们更好地理解和掌握Grails框架。 1. **Groovy语言基础**:Grails 使用 Groovy 作为主要编程语言,Groovy 是一种简洁、面向对象的JVM语言,具有动态...

    grails中文文档

    提供的 "Grails1.1中文文档-----2009.3.25.chm" 和 "Grails.zip" 文件,应该包含了 Grails 1.1 版本的中文文档和可能的示例代码。这些文档可以帮助你深入了解 Grails 的各项特性和使用方法,特别是对于初学者来说,...

    grails 中文第二版

    ### Grails框架中文第二版知识点概述 #### 一、简介 **Grails 2.0新特性** 1. **面向开发的特性** - 改进了开发者体验,例如通过简化配置来提高开发效率。 - 引入了新的工具和功能,如Groovy模板引擎Thymeleaf...

    grails中文API

    《Grails中文API详解》 Grails是一种基于Groovy语言的开源Web应用框架,它以其高效、简洁的特性深受开发者喜爱。Grails中文API的出现,为国内开发者提供了更友好的文档支持,使得理解与使用Grails框架变得更加方便...

Global site tag (gtag.js) - Google Analytics