标题:网站编码问题
只看楼主
xiongwokao
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-9-24
结帖率:83.33%
已结贴  问题点数:10 回复次数:8 
网站编码问题
网站是用UFT8编码的
后台中文添加进去就会变成乱码
请问大鸟
怎么让网站强型加载UTF8编码啊
我用ASP添加数据中文都可以正常显示
搜索更多相关主题的帖子: 编码 
2010-11-23 10:12
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:10 
IE6以下的所有版本,只要没有安装相应的字库,访问相关的页面都是会乱码的,例如,我是IE5 (Windows2000默认) 的版本,在没有安装IE繁体字库的情况下,访问任何繁体页面的网站都是会乱码的,当然前提是该页面采用了BIG5的Charset,而UTF-8作为一种国际编码就能很好的处理该问题,只要将页面存为UTF-8编码格式,再在页面上将codepage及charset全部定义为utf-8就可以在任何客户端浏览器中显示出完全正确的内容,完全不会乱码......
好了,才子这里以ASP页面为例,以一个实例来看具体操作吧:
在这推荐用Editplus来写代码打开新建一个ASP页面,相信玩ASP的朋友都会留意到,许多下载的源码里,页面最上方一般都有一句:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
前面的language应该不用多说了,vbscript就是ASP默认的脚本语言,其实完全可以不用写,写了好像还会影响页面执行效率,在这里我们先不讨论这个问题. 后面的codepage就是关键了,目的就是告诉浏览器,此页面是何种编码,936代表是简体中文,而950代表繁体中文,65001就是我们今天说的UTF-8编码了.我们将936改成65001,整句如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
再加上输出几个中文字看看能不能正确显示吧.
<%
Response.Write "第一次测试UTF-8页面"
%>
OK,直接点击"保存",执行这个页面看看,如果不出意外,大家可能看到显示出的是 "一尾UTF-8页" 这几个字,中文有乱码的现象,什么原因呢?
OK,请大家再点击最上面的 "文件" 菜单,选择"另存为",最下面一行有个编码,默认应该是ANSI的,请大家点下拉框,选择UTF-8,再点保存,再执行试试看,如果不出意外,乱得更厉害了想想原因,因为我们做的页面是HTML返回的,以前我们写HTML时,看到body前面,也就是head里都有一句meta,应该是这样的:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
也就是指定页面以gb2312编码返回结果,一定要写在有返回结果输出的前面.大家都知道gb2312是简体中文吧,我们今天说的是UTF-8编码,我们就将gb2312改成UTF-8吧,全部代码如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%
Response.Write "第一次测试UTF-8页面"
%>
再执行看看,嗯,这次正常显示了吧.......
asp网页utf8乱码结论:采用UTF-8编码,除了要将文件另存为UTF-8格式之外,还需要同时指定codepage及charset.
保证asp叶面一定不会出现乱码的代码应该是这样的:
(假定是UTF-8的例子)
<%@ CODEPAGE=65001 %>  
<% Response.CodePage=65001%>  
<% Response.Charset="UTF-8" %>  
可以建立公共文件code.asp,所有页面都包含这个编码指定.

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-23 10:15
xiongwokao
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-9-24
得分:0 
ASP用这种方法可以很好解决可是.net的应该怎么解决呢
我用的是C# 做的
2010-11-23 10:22
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
将编码指向为默认的就行,如:Encoding code = Encoding.Default;
而不要使用Encoding code = Encoding.GetEncoding("utf-8");

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-23 10:43
xiongwokao
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-9-24
得分:0 
.net后台中文写入数据库时全变成了??号

我用的是美国的空间
在本地空间都正常
2010-11-25 10:45
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
怎么解决外国空间中文显示出问题的问题

非程序生成的文字可以显示。但程序生成的文字就只有E文可以显示了。中文全是?号,这是数据库乱码引起的。

方法一:

使用 Microsoft Access 2000 打开数据库,选择工具菜单>数据库实用工具>转换数据库>到早期 Access 数据库版本。OK!

方法二:

 后来订阅了微软的新闻组,在微软的新闻组dotnet.framework.aspplus.general中发现有讨论这问题的文章,方法为添加<%@ CODEPAGE = "936" %>到每一页的开头,有点类似于jsp中的<%@ page contentType="text/html;charset=gb2312"%>
赶紧测试了一下,果然OK!!!

例子如下面所示:

<%@ CODEPAGE = "936" %>  
<%@ Import Namespace="System.Data" %>  
<%@ Import Namespace="System.Data.ADO" %>  
<%@ Import Namespace="System.Globalization" %>  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
</head>
方法三:

添加一个config.web文件到
    web目录下,
    建立一个文件config.web,内容如下,放在WEB目录下

<configuration>  
<globalization  
requestencoding="utf-8"  
responseencoding="utf-8"  
/>  
</configuration>

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-25 11:05
xiongwokao
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-9-24
得分:0 
我的程式后台用。NET程式写入数据库的时侯就会变成问号
用ASP可以正常写入
前台中文显示是正确的
我用了前面的方面还是不行
在.net 第一行写上<%@ CODEPAGE = "936" %>  
会提示错误
2010-11-25 13:28
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
俺 能给楼主的帮助就这些啦 谁还能帮楼主解决下啊  期待中

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-25 13:39
xiongwokao
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-9-24
得分:0 
老大你给我的是ASP的解决方法
有没有。NET的解决方法
2010-11-25 13:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-326598-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.073924 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved