YOYO的最新BLOG文章

Nov
27

前几天有个朋友从国外买了一个ASP空间,今天把网站上传之后发现所有从access数据库读取的数据都是乱码,实在找不到好的解决方法后过来问我。

具体情况是这样的:

非程序生成的文字可以显示。但程序生成的文字就只有E文可以显示了,中文全是?号。

可惜我用asp的那阵没用过国外空间,还真没碰到过ASP读取access数据库出现乱码的情况,所以没有办法,只好去网上找,网上各种各样的说法很多,但是最终还是归结了三种解决方法,列在下面,以备后用:

方法一:
使用 Microsoft Access 2000 打开数据库,选择工具菜单
>数据库实用工具>转换数据库>到早期 Access 数据库版本。OK!
 
方法二:
 
后来订阅了微软的新闻组,在微软的新闻组dotnet.framework.aspplus.general中发现有讨论这
个问题的文章,方法为添加
<%@ CODEPAGE = "936" %>到每一页的开头,有点类似于jsp中的
<%@ page c%>
赶紧测试了一下,果然OK!!!
 
例子如下面所示:
<%@ CODEPAGE = "936" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.ADO" %>
<%@ Import Namespace="System.Globalization" %>
 
<meta http-equiv="Content-Type" />
方法三:
 
添加一个config.web文件到
web目录下,
建立一个文件config.web,内容如下,放在WEB目录下
<configuration>
<globalization>
requestencoding="utf-8"
resp
/
&gt;
</globalization>
</configuration>

对于第一个解决办法,可能会出现转化不成功等情况;第二种方法的弊端就是要修改很多的asp文件;第三种方法好像是对asp.net的程序起作用,asp.net我还真没用过,不好妄加评论。
阅读全文 ->

Oct
21

最近很多朋友说他的MySQL数据库里面的数据是乱码,读取出来在页面显示也不正常,这可能是很多学习PHP操作数据库的时候遇到的一个问题,当然英文除外。

对于这个问题,有两种情况需要说明一下:

第一、写入数据库和读取数据库的页面编码要一致。例如写入的时候页面的编码是UTF8,那读取的时候你也要用UTF8编码的页面显示,这样就不会出现乱码了。这种情况下最好把数据库里面的编码设置为utf8-general-ci,因为这种情况数据在数据库中是乱码的,但是显示出来是正常的,所以设置为别的编码的时候容易出现写入失败。

第二、连接数据库的时候添加mysql_query(”SET NAMES 编码”);。例如写入的时候想用UTF8,则在连接数据库之后添加mysql_query(”SET NAMES UTF8″);,这样所有的数据写入和读取都是以UTF8编码进行的,所以这种情况下数据库中的数据也是正常的,而且这种情况不容易出现错误。

对于这两种情况,我觉得首先得记住第一种,就是写入和读取的时候一定要保证页面的编码相同,这也是第二条的一个基础,然后再记住mysql_query(”set names 编码”);这条语句,这样在你的非英文页面中就不会出现乱码了。

Tags: ,
Posted in PHP | MySQL, 刀光剑影
Sep
22

这几天我一直在做从bo-blog转移到wordpress的尝试,昨天晚上遇到了转化后的乱码问题。遇到乱码并不郁闷,郁闷的是我不知道为什么,后来我是通过添加mysql_query(”SET NAMES UTF8″);解决了这个问题,我知道这句SQL的作用,但是我还是不知道为什么我原来的转换会出现乱码,因为之前我同样的操作都没有出现过乱码问题。

在百思不得其解的时候,我尝试在写入一条SQL语句后直接用我的页面把刚才写入的数据显示出来,让我兴奋的是这次不是乱码,而在wordpress的页面显示的还是乱码,于是我立即去wordpress文件里面找SET NAMES的SQL语句,最终我在wp-includes/wp-db.php里面找到了它,至此我彻底明白了。

对于解决MYSQL乱码的问题,总结如下几点:

第一、为你的链接数据库的页面增加SET NAMES语句,如:SET NAMES UTF8,它的作用是设置本次数据库联接过程中,数据传输的默认字符集是UTF8,同时在写入和展示数据的页面保证显示的是UTF8,这样你的页面就不会出现乱码问题了。
第二、你可以不用SET NAMES语句,但是请一定保证写入数据的页面和展示数据的页面要用同样的编码,并且数据库编码最好用UTF8,因为用其他编码容易在写入的时候出现错误。保证写入数据的页面和展示数据的页面用相同的编码也不会出现乱码问题,但是这个时候写入的数据的编码并不等于你页面的编码
阅读全文 ->