`
supercode
  • 浏览: 30122 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

IronPython 中文乱码问题

阅读更多
最近在研究umbraco,这是一款.net下比较强大的CMS,灵活性很高,支持XSLT ,UserControl,IronPython等,在应用IronPython作为宏的时候,发现不支持中文,经过研究后,这不是umbraco的问题,而IronPython本身的问题。据说是IronPython支持多国编码的。可以应用如下方式

import sys

sys.setdefaultencoding('GB2312')

b="中国"

print b

遗憾的事,事情不像想象地那么美好。网上还有介绍u”中国”,abc.encode之类的方法,好象不管用。后来,看了IronPython(1.1)的源码,发现在SystemState中的Initialize方法里有这么一句。DefaultEncoding = Encoding.ASCII; 按理说DefaultEncoding是可以通过sys.setdefaultencoding进行赋值变更的,但经测试后,好像不行。由于时间的关系没用继续研究下去。解决问题就返回来了。具体的方法如下:

(1)将DefaultEncoding = Encoding.ASCII;修改为

DefaultEncoding = Encoding.GetEncoding("GB2312");

(2) Parser.cs中的FromFile中的Encoding.ASCII编码改为Encoding.GetEncoding("GB2312");

重编译后,无论是代码脚本还是从文件脚本均可以正常

test.py文件内容

b="上海"
print b

测试代码

IronPython.Hosting.PythonEngine pe = new IronPython.Hosting.PythonEngine();

MemoryStream sout = new MemoryStream();

pe.SetStandardOutput(sout);

pe.Execute("print \"中国\"");

pe.ExecuteFile("c:\\temp\\script\\test.py");

string result = Encoding.GetEncoding("GB2312").GetString(sout.ToArray());

System.Console.WriteLine(result);

  • 描述: 输出结果
  • 大小: 4.5 KB
2
0
分享到:
评论
2 楼 supercode 2008-04-14  
to szbillqian  :
我是在vs2005里编辑test.py的.倒没有注意其保存文件时的编码
1 楼 szbillqian 2008-04-13  
把test.py的文件编码改成utf-8试试;

相关推荐

    IronPython.2.7.8

    2. **README.md**: 这是项目的重要文档,包含了关于IronPython.2.7.8的基本信息,如安装指南、使用方法、已知问题和贡献方式等。Markdown格式使得文档易于阅读和维护。 3. **Lib**: 这个目录包含了IronPython的库...

    IronPython-2.7.4(内附样例程序)

    IronPython-2.7.4 是一个开源的Python实现,它是专门为.NET Framework和 Mono 平台设计的。这个版本的IronPython兼容Python 2.7的语法和库,允许开发者在.NET环境中运行Python代码,同时也支持与.NET组件的无缝集成...

    在.Net6中调用IronPython实现动态执行脚本

    在.NET 6中调用IronPython来实现动态执行脚本是一项强大的功能,它允许程序员在运行时编写和执行Python代码,极大地增强了应用的灵活性。IronPython是一个开源的Python实现,它能够无缝集成到.NET环境中,使得.NET...

    ironpython.zip

    IronPython是一种基于.NET和Mono平台的Python实现,它是由Jim Hugunin开发的,而他也是Jython的创始人。这个项目的主要目标是提供一个与标准CPython解释器兼容的Python环境,同时利用.NET框架的强大功能。IronPython...

    IronPython开发工具

    IronPython是一种基于.NET框架的Python实现,它允许开发者在.NET平台上使用Python语法编写代码,并能够无缝集成.NET生态系统中的各种资源。IronPython与传统的CPython(标准Python解释器)相比,最大的优势在于它...

    Python 中文乱码问题深入分析

    标题中提到的“Python中文乱码问题深入分析”指出了在Python编程中处理中文字符时常见的编码问题,这些问题通常源于不同的编码标准(如UTF-8、GBK等)之间的不兼容性。这种问题往往出现在从一个编码格式转换到另一个...

    IronPython-2.7.7.msi 金蝶云 调试python脚本环境搭建。

    标题中的"IronPython-2.7.7.msi"指的是IronPython的一个版本,这是一个开源的Python实现,可以在.NET Framework上运行。它允许开发者使用Python语言编写应用程序,同时利用.NET平台的强大功能。金蝶云,另一方面,是...

    IronPython in Action 无水印pdf版

    IronPython in Action 无水印pdf版。 IronPython in Action 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络 IronPython Action

    IronPython in Action

    《IronPython in Action》是一本深入探讨IronPython的权威书籍,专为那些希望利用Python的强大功能与.NET Framework的丰富库进行交互的开发者而设计。这本书不仅涵盖了Python的基础知识,更着重于讲解如何在.NET环境...

    IronPython 2.6源代码

    10. **社区与资源**:由于IronPython是开源项目,有活跃的社区提供支持,包括文档、示例代码和第三方库,这对于学习和解决问题非常有帮助。 深入研究IronPython 2.6的源代码,不仅可以了解Python语言的实现细节,还...

    IronPython各个支持平台对应的DLL资源

    IronPython是一种开源的Python实现,它能够无缝地与.NET Framework集成,允许开发者使用Python语言编写.NET应用程序。在.NET环境中,IronPython提供了与C#、VB.NET等其他.NET语言的互操作性,使得Python开发者可以...

    IronPython-2.7.7-win.zip

    IronPython是Python编程语言的一个实现,它允许开发者在.NET Framework和Mono平台上运行Python代码。这个压缩包"IronPython-2.7.7-win.zip"包含了IronPython的2.7.7版本,专为Windows操作系统设计。这个版本是在...

    C# IronPython 脚本引擎源码 + 例子

    4. **测试套件**:用于验证IronPython的正确性和性能的测试用例,可以帮助开发者理解IronPython的功能边界和潜在问题。 5. **构建脚本**:如果包含的话,这可能是用于编译和打包IronPython的脚本,对于想要自定义或...

    IronPython in Action 2012.pdf

    ### IronPython in Action #### 知识点概览 1. **IronPython 概述** - 定义与背景 - Python 和 .NET 的结合 - IronPython 的特性与优势 - 实际应用场景 2. **IronPython 入门** - 安装与配置 - 第一个 Iron...

    IronPython.7z

    这个版本的IronPython让开发者可以尝试Python 3的新特性,但可能包含一些未解决的问题和bug,因此主要用于测试和开发用途。 3. **.NET Framework**:.NET Framework是由微软开发的软件框架,用于构建和运行各种类型...

    IronPython2.0最新版本以及IDE等源码

    【IronPython2.0最新版本】是Python编程语言的一个实现,它允许开发者在.NET Framework上运行Python代码。这个实现由Microsoft开发,旨在提供一个与标准CPython解释器兼容的环境,同时利用.NET平台的高性能和丰富的...

    IronPython和C#交互

    标题中的"IronPython和C#交互"涉及到的是两种不同编程语言——IronPython(一种Python的实现,能够在.NET框架上运行)和C#之间的协同工作。 IronPython的优势在于它允许Python开发者利用.NET平台的强大功能,而C#是...

    IronPython-2.7.5

    IronPython-2.7.5 是一个开源项目,它允许开发者在 .NET Framework 上运行 Python 代码,并且能够与 C# 程序无缝集成。...无论是对于提升开发效率、扩展应用功能还是解决特定问题,IronPython 都是一个极具价值的工具。

    环境“IronPython|2.7-32”似乎未正确配置或缺失

    描述中提到的问题是关于Visual Studio中的集成开发环境(IDE)无法识别或找不到IronPython 2.7-32环境,这可能是因为缺少必要的Python环境或者IronPython的相关组件没有正确安装。 解决这个问题的关键在于确保系统...

Global site tag (gtag.js) - Google Analytics