让XSP支持中文

今天总算知道要如何做才能让XSP正确的显示中文.答案就是 CodeBehind .yes 就是它.
 今天在调试一个页面的时候发现的.如下面的代码.
 public class CodeBehind_aspx : System.Web.UI.Page, System.Web.SessionState.IRequiresSessionState {
 ......
    protected override void FrameworkInitialize() {
                base.FrameworkInitialize();
               this.ResponseEncoding = "gb2312";
                this.ContentType = "text/html";
                this.TraceModeValue = System.Web.TraceMode.SortByTime;
               this.Request.ValidateInput();
               this.__BuildControlTree(this);
     }
 .....
 }
 
 这个class并不是我写的而是JIT根据我写的ASPX文件自动动态生成的。其中它覆盖FrameworkInitialize方法
 在这个方法中this.ResponseEncoding = "gb2312"; 已经指定要使用 GB2312 Encoding 所以我想 XSP 是可以支持
 中文的. 既然决定要用 CodeBehind 所以就必须要将页面与代码分离开来写.可能很多人会不习惯在没有 VS 的环境下来 CodeBehind
 (被MS宠坏的programmers).在这我还是推荐大家用DW来写ASPX页面,用Sharpdevelop来写DLL. SharpDevelop有个很好的功能就是
 在编译的时候可以选择目标框架是什么,如果你选择目标框架是Mono1.1,那么它会使用MCS来编译。
 
 ASPX Code:
 
 <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" Inherits="MonoCodeBehind.Welcome"  %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Mono CodeBehind</title>
</head>
 <body>
  <form id="Frm1" name="Frm1" method="post" runat="server">
   <asp:Label ID="label" runat="server"></asp:Label>
   <p>中国<p>
   <asp:TextBox ID="text" runat="server" />
   <p><asp:Button ID="but" runat="server" />
  </form>
 </body>
</html>

这里我特意留下<p>中国<p> 用于比较

然后在SharpDevelop中新建一个工程,设置编译成DLL和目标框架使用Mono1.1
Dll Code:
/*
 * Created by SharpDevelop.
 * User: root
 * Date: 2006-10-12
 * Time: 14:01
 *
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MonoCodeBehind
{
 public class Welcome : Page
 {
  
  //申明组件的时候一定要用 protected
  //因为Web框架会使用反射来寻找
  //protected的组件
  protected Label label=new Label();
  protected TextBox text =new TextBox();
  protected Button but =new Button();
  protected override void OnInit(EventArgs e)
  {
   
   this.InitComponent();
   base.OnInit(e);
  }
  
  private void InitComponent()
  {
   
   this.Load+= new EventHandler(this.Page_Load);
   this.but.Click += new EventHandler(this.Button_Click);
   
  }
  
  private void Page_Load(Object sender,EventArgs e)
  {
   label.Text="我是label"; 
   text.Text="我是TestBox";
   but.Text="我是按钮按钮";
   Response.Write("Response.Write() 中国");
  }
  
  private void Button_Click(Object sender,EventArgs e)
  {
   text.Text="按钮被按下了";
  }
  
 }
}

然后编译该文件,将生成的DLL放到与ASPX文件同级的BIN目录下面
然后就启动XSP 设置 --root 等等

看吧中文出来了~

 

时间: 2024-07-28 18:45:19

让XSP支持中文的相关文章

小测XSP是否支持中文

早几天的时候一直对XSP支持中文的问题耿耿于怀.想重新编译XSP来修正对中文支持的问题,可惜功力不够只能够重新编译但编译后的exe却无法响应Http的访问.....(如果谁成功编译过请指教)于是今天想了想如果从数据库读来的数据包含中文情况会怎么样.于是随便写了个测试代码:数据库使用的是 MySql 4.1很简单的一个表+---------+-----------+-----------+| user_id | user_name | user_pass |+---------+---------

支持中文/英文/数字的动网ASP验证码类修改教程

完美支持中文验证码,英文及数字验证码. 设置起来相对比较简单,打开文件(Dv_GetCode.asp)进行相应参数修改: 以下是引用片段:   mCodeType     = 0        '0数字,1字母,2汉字     mCodeTotal    = 4        '生成的验证码个数     mMaxWidth    = 30        '可取的一个字符的最大宽度     mMinWidth    = 25        '可取的一个字符的最小宽度     mMaxHeight 

在Unix/Linux上令(java)JVM支持中文输出

unix|中文 原文: 在Unix/Linux上令(java)JVM支持中文输出 一.在Unix/Linux上令JVM支持中文输出 如果用户使用的是UNIX的远程服务器,就会遇到中文字体在图像中输出的问题,特别是由于许多管理员并不喜欢把主机的locale定为zh(因为意味着可能出乱码或必须装微形图形终端象zhcon,但很多情况下这样的条件并不具备).大部分程序员的JAVA经验苟限于JSP脚本程序,部分熟练的程序员大概开发过中间件.servlet.applet或在WINDOWS上运行的GUI程序.

支持中文的无组件文件上传

上传|无组件|中文 作者:woozhj文件名:upload.inc说明:支持中文的无组件文件上传ASP函数,由于ASP不支持二进制写入文件,所以存成文件时必须使用组件,本函数只提供截取上传文件的数据,可以写入到数据库. <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>Function GetUpload(FormData)    Dim DataStart,DivStr,DivLen,DataSize,FormFieldData    '分隔标志串(+CRLF) 

真正无组件图文混合上传,功能强大,无须数据库,支持中文!

上传|数据|数据库|无组件|中文     受本论坛某些帖子启发,于是动手编写了这个程序.该程序支持任何文本和二进制格式文件的上传:支持文件表单域和普通表单域混合上传:支持中文文件名:支持覆盖上传和文件同名时自动修改文件名:支持同时上传多个文件,而且多个文件表单域名可以相同:支持上传文件大小的控制-- 我自己感觉很不错哟:)     本程序无须任何数据库支持,直接将上传的文件保存到服务器指定的路径下.    测试环境:Windows2000 + IIS 5.0(对ADO版本有要求)    已知BU

TOMCAT+JIVE的安装配置(支持中文)

中文 0.已经安装了APACHE及JDK.否则安装之.本机安装版本为apache1.3,JDK为1.3.1(不能使用JDK1.4.0,因为在后面JIVE的安装中在编译一个JAVA文件的时候会遇到类申明重叠的问题,缘于jdk1.4.0的java.sql包和java.beans包都包含类Statement,而在jdk1.3.1中,java.beans包不包含Statement类,而该文件导入包的方式为: import java.sql.*; import java.beans.*;) 1.下载TOM

给图片添加水印(支持中文)并生成缩略图

缩略图|中文 <? // **************************************** // // 功能:给图片添加水印(支持中文)并生成缩略图 // 参数: $srcFile 图片文件名 // $dstFile 另存图片文件名 // $markwords 水印文字内容 // $markimage 水印图片地址 // $dstW 图片保存宽度 // $dstH 图片保存高度 // $rate 图片保存品质 // ********************************

英文的服务器不支持中文及中文数据库的最新解决办法 [转帖

服务器|解决|数据|数据库|中文 英文的服务器不支持中文及中文数据库的解决办法 方法一: 在翻阅了微软NGWS文档后发现在文档的常见问题部分有提到要添加一个config.web文件到 web目录下,试了一下,中文显示果然OK了. 方法如下: 建立一个文件config.web,内容如下,放在WEB目录下 <configuration> <globalization requestencoding="utf-8" responseencoding="utf-8&

为什么我的 Mysql 不支持中文查询

mysql|中文 Q: 我在写一个查询条件时的问题如下: 如我想写一个字段中包含"李"字的所有记录 $str="李"; select * from table where field like '%$str%' ; 显示的记录中除了包含"李"字的记录,还有不包含"李"字的记录.为什么? A: 在MySQL中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的.这种情况在MySQL的很多版本中都存在.如果这个问题不解决,那