我们的网络应用程序使用定制的IronPython脚本(IronPython版本为2.7.3)
脚本中的对象在一个点上转换为字符串。这绝对是一个字符串。它由我们的应用程序提供,其价值来自外部系统。 引发异常的行是:
width: 10%
其中return str(customField.Value)
是我一直在描述的对象(customField.Value
是对象类型。)
对象是一个字符串,因为customField.Value
是text类型(我们的app中的一个类型),我可以提取它的值,它看起来像一个标准的英文字符串,并且没有ASCII范围之外的字符。 / p>
记录的异常(在我们的记录器处理之后)是:
customField
为什么会这样? 我该怎么做才能解决这个异常,以及修改脚本的正确方法是什么?
答案 0 :(得分:2)
解决: str()应用于str对象,该对象是一个unicode字符串,其字符超出ascii范围,抛出所描述的异常
我的解决方案是使用以下方法代替str():
def safeStringConversion(obj):
if isinstance(obj, str):
return obj
else:
return str(obj)
有了这个,unicode字符串已经通过应用程序以保留的形式传递