不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
CodeSmith C# 乱码之解决
编辑:dnawo 日期:2008-07-28
将CodeSmith的输出文件在VS2005中打开,发现中文变成了乱码,看了一下CodeSmith的帮助,将ReponseEncoding属性改成"UTF-8",再重新输出,用VS打开,还是乱码。没办法,在VS的选项里面看看吧,意外发现“文本编辑器”->“常规”中有一个自动检测不带签名的UTF-8编码,选上,中文乱码终于露出了原形。找了一些资料看看,总算知道了原因:Windows为了识别Unicode、Unicode big endian和UTF-8,在Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。而CodeSmith的输出UTF-8是标准的未加标识的。这样VS就不能识别出输出文件的编码了。
为此我们可以更改其CodeSmith的脚本的方法来处理:
首先增加2行
public System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Unicode");
public System.IO.StreamWriter txt;
找到下面这句话
this.ClassTemplate.RenderToFile(classFileName, true);
上面这段话更改成下面的代码
txt = new System.IO.StreamWriter(classFileName,false,enc);
txt.Write(ClassTemplate.RenderToString());
txt.Close();
再找到下面这句话
this.MappingTemplate.RenderToFile(mappingFileName, true);
上面这段话更改成下面的代码
txt = new System.IO.StreamWriter(mappingFileName,false,enc);
txt.Write(MappingTemplate.RenderToString());
txt.Close();
为此我们可以更改其CodeSmith的脚本的方法来处理:
首先增加2行
public System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Unicode");
public System.IO.StreamWriter txt;
找到下面这句话
this.ClassTemplate.RenderToFile(classFileName, true);
上面这段话更改成下面的代码
txt = new System.IO.StreamWriter(classFileName,false,enc);
txt.Write(ClassTemplate.RenderToString());
txt.Close();
再找到下面这句话
this.MappingTemplate.RenderToFile(mappingFileName, true);
上面这段话更改成下面的代码
txt = new System.IO.StreamWriter(mappingFileName,false,enc);
txt.Write(MappingTemplate.RenderToString());
txt.Close();
评论: 0 | 引用: 0 | 查看次数: 5541
发表评论
请登录后再发表评论!