asp 无法显示中文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp 无法显示中文相关的知识,希望对你有一定的参考价值。

我用了一个国外的空间上传了asp页面
结果页面上的中文全变成????? ?????
大家知道怎么解决吗

1.若是html文件(.htm .html):
在<head></head>中加上<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
2.若是php/cgi文件(.php .php3 .php4):
在每个PHP文件第一行加上<?header("content-Type: text/html; charset=gb2312"; ?>

3.若是asp文件(.asp .jsp):
下面言归正传,说说asp源文件在国外服务器上中文问题的解决办法:

1.首先,把您的asp源文件放在 IIS 里进行全面测试,调用每一项功能,确认它完全能够使用,并正确显示中文,并打开 *.mdb 数据库文件查看中文显示是否正常。全部通过后,做好备份文件,即可执行第二步。

2.如果,您根本不懂 asp 的话,最简单的方法是:
打开 所有 *.asp 文件,并在第一行插入 <%@ codepage="936" %>,

例外情况:
①,如果第一行是以 <%@ LANGUAGE="VBSCRIPT" %> 开头,
则把第一行改为:<%@ codepage="936" LANGUAGE="VBSCRIPT" %>

②,如果第一行是以 <html> 或 <SCRIPT LANGUAGE="javascript">开头,则不加入。

3.第二步完成后,再用 IIS 对每一项功能进行测试,如显示 \0\conn.asp line 1, 即为错误信息,意思是: conn.asp 源文件第一行有错,那就把 <%@ codepage="936" %> 删除即可,一些例外错误,请到 http://search.microsoft.com/default.asp ;这里,输入“错误信息”查询即可,全部功能测试可行后,即可上传至国外服务器上,进行测试。

4.方法还是:调用每一项功能,全部能正确使用并能显示中文后,再“下传”*.mdb 文件(非常重要),打开,确认能正确显示中文,大功告成。

另外在外国服务器上用ACESS2000的中文显示方法不用转化数据库ACESS2000,只需在ASP第一行加入<%@ codepage=1256 %>

怎么解决外国空间中文显示出问题的问题
非程序生成的文字可以显示。但程序生成的文字就只有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>

方法三:

在翻阅了微软NGWS文档后发现在文档的常见问题部分有提到要添加一个config.web文件到
web目录下,试了一下,中文显示果然OK了。
方法如下:

建立一个文件config.web,内容如下,放在WEB目录下
<configuration>
<globalization
requestencoding="utf-8"
responseencoding="utf-8"
/>
</configuration>

DISCUZ论坛对付国外空间乱码最简单的办法

DISCUZ论坛对付国外空间乱码最简单了,在它的配置文件config.php里找到这句:
$headercharset = 1; // 强制设置字符集, 0=否, 1=是. 乱码时使用

将等号后面修改成1就可以了,无须修改其它文件。
其实很简单,但是注意到的人不多:)

参考资料:http://www.axyz.cn/index.asp?tjrmb=%u6211%u5FC3%u98DE%u626C&boardid=40

参考技术A 国外的空间有可能没有gb2312字符集

所以,你要统一改你的网页编码为utf-8了。
参考技术B Html页面源代码加入:<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

ASP的包含页第一行,指定解析语言:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

加上这两行代码就可以解决问题!
参考技术C 只有这2种才能显示中文,否则就会出错
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
参考技术D 设定了页面了编码了吗?
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<asp:PlaceHolder> 未在 iphone 上显示

【中文标题】<asp:PlaceHolder> 未在 iphone 上显示【英文标题】:<asp:PlaceHolder> is not showing on iphone 【发布时间】:2014-03-22 05:07:23 【问题描述】:

我的母版页中有一个代码,我使用占位符来显示和隐藏 2 个不同的部分。它在所有浏览器中都可以正常工作,但在 Iphone 上却无法使用,即使在 Android 上也可以使用。 这是我的代码:

   <div class="actions"> 
                <asp:PlaceHolder ID="phLogout" runat="server">

                    <input TYPE="button" VALUE="Log Out" class="Button Orange" onclick="window.location.href = 'Logout.aspx'"> 

                </asp:PlaceHolder>
                <asp:PlaceHolder ID="phLogin" runat="server">
                    <p class="Title">Current users sign in:</p>

                    <asp:TextBox runat="server" ID="username" holder="Username"></asp:TextBox>
                    <asp:TextBox runat="server" ID="password" holder="Password" TextMode="Password"></asp:TextBox>

                    <asp:Button ID="Button1" runat="server" Text="Log In" class="Button Orange" OnClick="btn_login_Click"   ></asp:Button>
                    <p class="Forgot"><a href="ForgotPassword.aspx">Forgot password?</a></p>
                </asp:PlaceHolder>
            </div>

我刚刚发现这部分没有显示在 iphone 中,所有内容都在 . 我可以用什么代替标签? 我试过了,但所有的造型都消失了。是唯一的标签取代了这个,所以我可以在样式表上做更多的工作,或者你在建议别的东西?或者即使没有显示的原因是?

【问题讨论】:

您真正期待什么? asp:Placeholder 是一个服务器端标记,必须放置在服务器端 .aspx 页面内,该页面又由 Web 服务器处理并呈现实际的 html 以显示在浏览器上。因此,如果您的页面未托管在 Web 服务器中,它将永远无法正常工作! 它在所有浏览器中都运行良好!正如我所提到的,它不仅适用于 iPhone,甚至适用于 Android。 你如何在 iOS 中调用页面?请分享一些代码。 只需用 iphone 访问我的网站 URL。 我不确定下面发生了什么,但如果你有 mac 和 Xcode,你可以从 Xcode 在 ios 模拟器中打开页面。然后你可以打开 Safari->从 Preferences->Advanced 中打开它的 Developer 标签,最后你可以将你的 iOS 浏览器页面与 Safari 开发者工具挂钩,以查看实际呈现的 HTML。 【参考方案1】:

我相信您的文本框中的“holder”属性应该是“placeholder”。

【讨论】:

Holder 与 placeholder 完全不同。 Holder 显示文本框内的文本。它根本与占位符无关。 是的,我知道。无论您遇到什么问题,都与 标签无关。这些是在服务器上解析的,并且没有等效的 html。 “holder”不是文本框的有效属性。 “占位符”是一个有效的属性,也是您想要使用的属性。这很可能是发生任何奇怪现象的原因。 ***.com/questions/15823983/…

以上是关于asp 无法显示中文的主要内容,如果未能解决你的问题,请参考以下文章

无法在 asp.net web 控件顶部显示打印对话框

ASP.NET MVC 页面无法加载并显示“找不到资源”

ASP.NET Web 应用程序无法使用自定义引导程序正确显示内容

无法在 asp.net mvc 中显示来自 s3 存储桶的上传图像

ASP.NET - ERR_EMPTY_RESPONSE / 连接已重置 / 页面无法显示

无法显示带有 asp.net mvc url.action 链接的引导对话框