中文乱码时可通过改变文件编码解决
作者 传说一梦 写于 2008-01-17 | 828 次浏览文本文件里输入的文字的编码类型,取决于文件保存时所选择的编码类型。要输入非文件编码的字符(数字、英文字符和英文标点除外),只能输入它的字符编码。
[ 标签: 乱码 ][ 固定链接:http://blog.tanggaowei.com/2008/01/posts.html ]
荷塘,月色下,宁静的夜晚,宁静的心
文本文件里输入的文字的编码类型,取决于文件保存时所选择的编码类型。要输入非文件编码的字符(数字、英文字符和英文标点除外),只能输入它的字符编码。
[ 标签: 乱码 ](关键字:PowerDesigner,MySQL,MyODBC,乱码,数据源,连接)
在PowerDesigner里,我用MySQL的ODBC(MyODBC)数据源连接生成数据库(菜单:Database/Genarate Database),但是总是乱码。即使设置了中文编码也不行:
在PowerDesigner 里找了很久,也没有另外地方可以设置编码。假设PowerDesigner没有问题,那剩下的就只有MyODBC和MySQL了。MySQL在安装时我选 择的是中文编码,我用MySQL的命令行执行PowerDesigner生成的.sql文件时,中文显示正常。排除MySQL,就只剩下MyODBC了。
网上Google了一下,以下语句可以设置MyODBC连接(conn)的编码:
conn.execute(”set names gb2312″)
但是,MyODBC数据源是通过属性框添加的。又Google了一下,没有发现能配置MyODBC编码的配置文件。最后的焦点聚集在了添加数据源的属性框了。
在MyODBC 数据源属性框里有一个“Connect Options”选项卡,看名字应该是设置连接用的。其中有一项“Initial Statement”,看起来像是可以输入一些语句,用以初始化连接。我试着输入“set names gb2312”,点击“OK”按钮保存:
然后用PowerDesigner重新生成数据库。果然,熟悉的中文在我的MySQL Administrator里正确地显示出来,再也找不到乱码了:
上个月,通过Google Reader看到E-Space的一篇文章“Mindquarry:开源协作管理平台”,于是马上安装和试用了一下,感觉相当地不错。用Mindquarry来做项目管理真是个不错的选择。但是,在试用的过程中,我发现了几个问题(Mindquarry Server 1.1中):
除最后一个问题外,其它都是非致命的,通过某些方式还是可以正常使用的。最后一个问题是极其糟糕的,它使用得Files模块完全无法正常使用。我们在实际开发过程中,多是中文名的文档。
所以,当务之急是解决中文名文档下载的问题。这样,咱们中国人才能真正享受到开源的实惠呀。
参照Mindquarry网站的介绍(Developing Mindquarry),我下载了该项目的源代码,并开始着手解决这个问题。
刚看到下载的源码时,真是一头雾水,不知道那是一种什么样的语言。后来,通过出错页面出现的几个关键类名,在Google上搜索,才发现,原来该项目用的是XSP语言。XSP是一种基于Java和XML的能产生动态Web内容的服务器端语言,通过Apache Cocoon实现。它的版本控制功能是基于Subversion(新一代的版本控制工具)的。
第一次以失败告终,因为一开始就对自己没有信心。
今天终于成功解决了,因为我对自己说“一定要有信念”(《越狱》里讲的)。
解决的过程以后再说,今天把解决的方法和大家分享一下(针对Mindquarry Server 1.1):
| 下载“mindquarry-dma-source-1.1.jar” 文件,用它覆盖Mindquarry Server安装目录($Mindquarry Server)下的$Mindquarry Server\webapps\WEB-INF\lib\mindquarry-dma-source-1.1.jar文件,然后重启(停止,然后再启 动)Mindquarry Server。 |
1.1.1和1.1.2版本的更新文件为:mindquarry-dma-source-1.1.1.jar、mindquarry-dma-source-1.1.2.jar
其它版本的更新方法:
提供修改后的SvnSourceUri.java文件:SvnSourceUri.java
参考链接:Mindquarry Server的安装
[ 标签: mindquarry, 乱码 ]BEA Workshop Studio是基于Eclipse的可视化开发平台。它提供源代码/可视化JSP编辑器和调试,还有CSS和JavaScript编辑器等(更多信息可在http://dev2dev.bea.com.cn/ 搜索)。BEA Workshop Studio不单有windows版的,也有linux版的。在linux下用BEA Workshop Studio进行web开发是一个不错的选择。但是,有时候我们发现BEA Workshop Studio保存文件后,中文会变成乱码。而且,设置了windows->Preferences->General- >Content Types,还是不管用。
后来看到一个贴子里说BEA Workshop Studio是通过页面标签
总结:以jsp文件为例,有两个地方会影响到文件编码。一个是windows->Preferences->General->Content Types的设置(从菜单进入),一个是
[ 标签: bea workshop studio, 乱码 ]前几天,由于工作需要,要对Subversion(一款现在很流行的版本控制软件)的Web客户端SVN WebClient,进行汉化。现有的SVN WebClient是英文版的,界面上大部分英文直接写在JSP文件里。因此,为了方便快速,我决定直修改JSP文件里的英文。把英文翻译成中文,以实现对SVN Web Client的简单汉化。但是,在编辑器里输入的中文,在浏览器上显示却都是乱码。
一开始,我用<%@ page contentType=”text/html; charset=GB2312″ %>设置JSP页面的编码,页面上的中文能够显示正确。但是,表单提交到服务器上的中文,却都显示乱码。
原来,SVN WebClient系统的Serverlet都是采用UTF-8编码。由于上面的设置,表单是以GB2312编码提交给Serverlet,而Serverlet却把它们当成UTF-8编码进行处理。这样一来,写到服务器上的内容已经就是乱码了。看来,为了不修改Serverlet源代码,只有
在JSP页面里也采用UTF-8编码才行。没办法,再想办法吧。
虽然在JSP页面直接输入的中文,在浏览器中显示乱码。但是,如果设置浏览器用GB2312编码进行浏览,这些页面中输入的中文却能够正确显示。只是,这时从数据库里读出的中文,又变成了乱码。这说明数据本身没有损坏,只是编码不一样。一个是GB2312编号,一个是UTF-8编号。也就是说,我从编辑器里输入的中文是GB2312编码的。那么,只要我在编辑器里输入UTF-8编码的中文就可以了。
我记得原来用EditPlus编辑器另存文件时,有一项是选择编码的。也许,我将原始JSP文件另存为UTF-8编码的,然后再输入的中文就会是UTF-8编码的了。
事实证明,用EditPlus另存为UTF-8编码后,输入的中文确实显示正常。由于这种另存方式,实际就是一种编码转换,所以,原先输入的中文,也能正常显示了。于是,我将原先汉化过的JSP文件,一个一个都转换成UTF-8编码,然后将<%@ page contentType=”text/html; charset=GB2312″ %>改写为<%@ page contentType=”text/html; charset=UTF-8″
%>。这样,我输入的中文,终于能在浏览中正确显示出来。我的汉化工作也很快完成了。
总结:当JSP文件里直接输入的中文,在浏览器里显示乱码时,请不要慌乱。应该用有“编码转换”功能的软件,将文件转换成正确的编码。如EditPlus编辑器,就可以将文件转换成UTF-8编码。
[ 标签: jsp, 乱码 ]