zoukankan      html  css  js  c++  java
  • 关于codesmith中文乱码的解决方法

    在使用codesmith写模板生成代码时,遇到了两种中文乱码的问题:模板内中文乱码,模板生成的文件中中文乱码。

    一、模板内中文乱码:

    使用codesmith写模板时,保存后中文会变成乱码,此解决方法,网上很好搜。在此在记录一下。

    1、打开CodeSmith Studio
    2、打开菜单Tools--〉Options
    3、确认Enable unicode support钩上
    4、修改你的CodeProject代码,确认具有地下红色部分的信息
    <%@ CodeTemplate Language="C#" ResponseEncoding="UTF-8" TargetLanguage="Text" Src="" Inherits="" Debug="False" Description="Template description here." %>
    5、完成了

    二、用模板生成的文件中的中文乱码:

    网上查了一些资料,说codesimth生成的文件的默认编码格式是utf-8格式。网上也找到了一种解决方法,不过没怎么弄明白,在此也记录一下。

    网上资料:(两种方法)

    1、模板文件是ASII编码,而最终存储的文档则用的是Utf-8,把模板文件另存为Utf-8格式,再生成中文乱码问题解决。

    2、为此我们可以更改其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();

    3、自己总结的方法,主要针对生成的文件后结合Visual Studio使用的情况。

    生成完文件后,把文件加入到项目中,别使用“双击”的方式打开文件。右键点击要打开的文件,然后选择打开方式从中选择“带编码的编辑器”打开,比如:如果要打开aspx文件可以选择“带编码的HTML编辑器”,打开.cs文件可以选择“带编码功能的CSharp编辑器”,这样中文就不会乱码了。最好在生成的aspx文件头家商这样一句“<meta http-equiv="content-type" content="text/html; charset=utf-8">”,显式制定编码格式。

    这是目前总结的一些问题,希望对大家有用。

  • 相关阅读:
    Mac下安装Navicat12之破解
    重新认识spring
    冒泡排序(二)
    算法入门篇(一)
    elasticsearch复杂查询-----2
    idea maven web工程明明添加了maven lib的依赖,但启动web容器时始终报No Class Found?
    idea 多模块项目依赖父工程class找不到问题
    apache-maven-3.3.9集成apache-tomcat-7.0.72实现热部署配置细节
    WebService CXF调试常见报错及解决方案
    通过dbcp链接池对数据库操作报 Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.)--解决方案
  • 原文地址:https://www.cnblogs.com/acles/p/1811168.html
Copyright © 2011-2022 走看看