NVelocity中文乱码的问题

 

最近用NVelocity做个Demo,发现如果在模板中输入中文字符,那NVelocity输出就会出现乱码,
经过小弟的艰苦发掘,真于找出了个解决办法,现拿出与大家共享

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using NVelocity;
using NVelocity.Context;
using System.IO;
using NVelocity.App;
using NVelocity.Runtime;

public partial class _Default : System.Web.UI.Page 
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        StringWriter writer 
= new StringWriter();


        Velocity.SetProperty(RuntimeConstants.RESOURCE_LOADER, 
"file");
        Velocity.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, Server.MapPath(
"Template"));
        Velocity.SetProperty(RuntimeConstants.INPUT_ENCODING, 
"GB2312");
        Velocity.SetProperty(RuntimeConstants.OUTPUT_ENCODING, 
"GB2312");
        Velocity.Init();
        Template template 
= Velocity.GetTemplate("test.vm");
         IContext context 
= new VelocityContext();
         
         template.Merge(context, writer);

         Response.Write(writer.ToString());
    }

}

大家注意下面这两段话:
 Velocity.SetProperty(RuntimeConstants.INPUT_ENCODING, "GB2312");
        Velocity.SetProperty(RuntimeConstants.OUTPUT_ENCODING, 
"GB2312");
它们就是关键,它们分别告诉NVelocity读入也输出模板时采用什么编码,呵呵..
经过测试,已O了
posted @ 2007-01-31 19:02  不可以  阅读(1647)  评论(2编辑  收藏  举报
使用Live Messenger联系我
关闭