oracle查询中文报错,RobotframeWork查询oracle带中文的异常问题

阅读: 评论:0

oracle查询中文报错,RobotframeWork查询oracle带中文的异常问题

oracle查询中文报错,RobotframeWork查询oracle带中文的异常问题

问题一:SQL语句中含有中文报错--UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-15: ordinal not in range

问题描述:

RobotframeWork在使用oracle过程中遇到了SQL语句中含有中文的情况

运行时却报错

解决办法:

在Python2.7.12Libsite-packages文件夹下下新建一个文件sitecustomize.py 内容如下:# -*- coding: utf-8 -*-

import sys

import os

import cx_Oracle

reload(sys)

sys.setdefaultencoding('utf-8')

保存后重新启动RobotframeWork,报错没有了,可以正常从数据库查询到值并赋值给变量

问题二:RobotframeWork查询数据库返回的中文值赋值给变量后显示为乱码

问题描述:

在上面问题一解决后,紧接着发现虽然可以正常查询并赋值,但变量的值却无法正常显示中文而是乱码${a} = [(u'u81eau52a8u5316u6d4bu8bd5',)]

解决办法:

1、首先要增加一个转码的关键字,在Python2.7.12Libsite-packagesDatabaseLibrary文件夹下找到query.py文件,并在里面增加一段代码内容如下:def decode(self, code):

return code.decode('utf-8')

尽量不要把代码放在文件最后,我试过放在最后却不能编译通过

2、第二步要敲黑板了,是很关键的一步,由于手动改了query.py与之前的query.pyc文件不一致,使得RobotframeWork中的关键词都失效了,所以必须手动将query.py文件编译一下才行。编译过程这里不赘述,用Python编译器打开query.py文件run一下

3、通过第二步编译后,RobotframeWork又重新识别了关键词,这个时候要用第一步定义的关键词将变量转换一下,增加语句${CONTENT} decode ${a[0][0]}

此时,已能正常显示中文了

本文发布于:2024-02-01 01:28:04,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170672208532845.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:中文   报错   异常   oracle   RobotframeWork
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23