UFT8编码问题,请注意看问题再回答!谢谢!

showliz 2009-01-08 04:47:24
IIS上建的网站上一页面,文件已另存为UFT-8了,页面内空:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Response.Charset="utf-8"%>
<%Session.CodePage=65001%>
<%
if not Rs.eof then
%>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

运行显示出错信息,却是乱码,如果在IE页面上切换编码成GB2312,则能正常显示缺少'End'的出错信息。
看似乎还是假UTF-8的页面,如果没有出错页面还是能正常显示的,可一旦ASP出错则显示乱码,可该加的我都已经加了。请问怎解决这编码问题?
...全文
249 点赞 收藏 18
写回复
18 条回复
showliz 2009年01月16日
cuixiping 和wtogether 的办法都挺好!
虽然不是我最初想要的,但也是个解决办法。
结贴
回复 点赞
hawkflying 2009年01月16日
不应该有500的错误到客户端,500错误应该避免出现,只所有有这样的错误是代码少了容错处理和异常处理机制。建议完善代码
回复 点赞
wtogether 2009年01月14日
500-100.asp代码里
Response.Charset = "UTF-8"
改成
Select Case Session.CodePage
Case 65001
Response.Charset = "UTF-8"
Case 936
Response.Charset = "GB2312"
Case Else
'...由CodePage去获取字符集合,网上有对应关系,去搜索一下
End Select
回复 点赞
cuixiping 2009年01月12日
9楼正解!
但是9楼的不全面,9楼的方法可以显示UTF-8的错误页,却不能同时显示GBK的错误页。

因为IIS的500错误页的编码不符,所以显示运行时错误会乱码,我自己都把IIS错误页改成GBK与UTF-8通用的。也就是把里头的中文字(准确说是UNICODE编码不在0-127的字符)全部转码成&#nnn;的形式。

比如我们表示“我们”
ASP中可以这样取得一个字符的UNICODE码:ASCW(“我”)
回复 点赞
zhiye2005 2009年01月11日
楼主啊,一个网站里的内容显示页面show.asp

可以使用俩种编码吗?


gb2312 utf-8 我写了俩个模板一个是gb2312 一个是 utf-8,显示时随机调用,但是会出现乱码啊?
回复 点赞
showliz 2009年01月09日
顶一下!
回复 点赞
空心兜兜 2009年01月08日
[Quote=引用 4 楼 showliz 的回复:]
我已经是这么做的了:
用记事本打开要保存的文件,选[另存为],然后,在编码中将默认的ANSI(也就是ascii编码)改为utf-8,是utf-8而不是unicode或其他。
[/Quote]

这样就不知道了...
回复 点赞
wtogether 2009年01月08日
If Session.CodePage = 65001 Then
Response.Charset = "UTF-8"
Else
Response.Charset = "GB2312"
End If
回复 点赞
showliz 2009年01月08日
不是吧,真是把IIS的错误信息页面改成UFT-8啊?
我又有UTF-8的网站也有GB2312的网站,而且ASP错误可不只500这个页面哦,还有没其它更好的办法啊?
回复 点赞
wtogether 2009年01月08日
建立文件500-100.asp,放在站点根目录,IIS里,自定义错误信息,500-100错误,用url,地址:/500-100.asp
500-100.asp文件代码

<%@language="vbscript"%>
<%
Response.Status = "500 Internal Server Error"
Response.Buffer = True
Response.ContentType = "text/html"
Response.Charset = "UTF-8"
Response.CacheControl = "no-cache"
Response.Expires = 0
Response.AddHeader "Pragma", "no-cache"

Dim MyError
Set MyErr = Server.GetLastError()
%>
<html>
<head>
<title>HTTP 500 - Internal server error</title>
<style>body, td {font-family: arial,sans-serif}</style>
</head>
<body text="#000000" bgcolor="#FFFFFF">
<blockquote>
<H2>HTTP 500 - Internal server error</H2>
</blockquote>
<hr color="#5C5DA3" />
<table width="100%" border="0" cellpadding="2" cellspacing="0">
<tr><td width="120">ASP Code</td><td><%=MyErr.ASPCode%></td></tr>
<tr><td width="120">Number</td><td>0x<%=Hex(MyErr.Number)%></td></tr>
<tr><td width="120">Source</td><td><%=MyErr.Source%></td></tr>
<tr><td width="120">Category</td><td><%=MyErr.Category%></td></tr>
<tr><td width="120">File</td><td><%=MyErr.File%></td></tr>
<tr><td width="120">Line</td><td><%=MyErr.Line%></td></tr>
<tr><td width="120">Column</td><td><%=MyErr.Column%></td></tr>
<tr><td width="120">Description</td><td><%=MyErr.Description%></td></tr>
<tr><td width="120">ASPDescription</td><td><%=MyErr.ASPDescription%></td></tr>
</table>
</body>
</html>
<%
Set MyErr = Nothing
%>
回复 点赞
ChinaXtHuLang 2009年01月08日
[Quote=引用 5 楼 anjing5566 的回复:]
现在楼主说的是出错信息是乱码,不出错是正常的这种问题我经常遇到,换一下浏览器编码就可以了,问题的本质不详,可能和iis的默认设置有关,
mark一下,
等问题的本质
[/Quote]
是的。麻烦LZ检查一下啊
回复 点赞
showliz 2009年01月08日
anjing5566兄说的正在我想的,我偿试过去IIS上找设置,没有找到可改编码的地方。
回复 点赞
showliz 2009年01月08日
难道UFT-8的ASP页面就没有办法像GB2312一样,出错显示能看懂的信息吗?
每次出错,还得切换到GB2312才能知道是什么地方出错?
还是因为是IIS的原因,IIS的ASP错误解释是默认GB2312的?
回复 点赞
anjing5566 2009年01月08日
现在楼主说的是出错信息是乱码,不出错是正常的这种问题我经常遇到,换一下浏览器编码就可以了,问题的本质不详,可能和iis的默认设置有关,
mark一下,
等问题的本质
回复 点赞
showliz 2009年01月08日
我已经是这么做的了:
用记事本打开要保存的文件,选[另存为],然后,在编码中将默认的ANSI(也就是ascii编码)改为utf-8,是utf-8而不是unicode或其他。
回复 点赞
windzjp 2009年01月08日
出错时显示乱码,能正常输出显示正常,本身就这样
如果想看出错时的提示信息,可以查看源代码~~~
回复 点赞
笨笨兔兔兔兔兔 2009年01月08日
你网页本身的编码格式你看了么??

就是用editplus 或者是其他的编辑器 另存的时候可以保存成utf-8的编码格式的
回复 点赞
lingyun410 2009年01月08日
得使用编码转换软件,保证你的文件的编码正确!~
回复 点赞
发动态
发帖子
ASP
创建于2007-09-28

1.9w+

社区成员

35.7w+

社区内容

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区公告
暂无公告