为什么字符串对象的IronPython str()会引发UnicodeEncodeError?

时间:2015-07-04 17:38:47

标签: python python-2.7 unicode encoding ironpython

我们的网络应用程序使用定制的IronPython脚本(IronPython版本为2.7.3)

脚本中的对象在一个点上转换为字符串。这绝对是一个字符串。它由我们的应用程序提供,其价值来自外部系统。 引发异常的行是:

width: 10%

其中return str(customField.Value) 是我一直在描述的对象(customField.Value是对象类型。)

对象是一个字符串,因为customField.Value是text类型(我们的app中的一个类型),我可以提取它的值,它看起来像一个标准的英文字符串,并且没有ASCII范围之外的字符。 / p>

记录的异常(在我们的记录器处理之后)是:

customField

为什么会这样? 我该怎么做才能解决这个异常,以及修改脚本的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

解决: str()应用于str对象,该对象是一个unicode字符串,其字符超出ascii范围,抛出所描述的异常

我的解决方案是使用以下方法代替str():

def safeStringConversion(obj):
    if isinstance(obj, str):
        return obj
    else:
        return str(obj)

有了这个,unicode字符串已经通过应用程序以保留的形式传递