[英]UnicodeEncodeError: replace or remove unicode charcter u“\u2019” from database table
我有一个带有“评论”列的用户反馈表。
python代码清除了反馈表中的comment列。 这是在清理之前对注释进行预处理的示例。
Update Feedback set COMMENTS=Replace (COMMENTS,'%','PCT')
Update Feedback set COMMENTS=Replace (COMMENTS,'"','_')
Update Feedback set COMMENTS=Replace (COMMENTS,'','_')
环境:Oracle 11g,Python 2.7,mx_Oracle-5.1.2
python代码收到以下错误:
如何从Oracle数据库的注释栏中替换/删除u“ \\ u2019”?
感谢任何输入吗?
Process Process-1:
Traceback (most recent call last):
File "C:\Python27\ArcGIS10.1\lib\multiprocessing\process.py", line 258, in _bootstrap
self.run()
File "C:\Python27\ArcGIS10.1\lib\multiprocessing\process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "C:\test\Python\Cleanse_multiprocessing_1.py", line 1086, in Worker
RemoveSpecialChar = str(RemoveSpecialChar).strip()
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 112: ordinal not in range(128)
而不是使用str(RemoveSpecialChar)
,而是显式编码为ASCII并忽略任何非ASCII字符:
RemoveSpecialChar = RemoveSpecialChar.encode('ASCII', 'ignore').strip()
但是您可能会想问自己,为什么首先要强制将Unicode数据转换为字节串。
如果要替换数据库中的所有非ASCII字符,则可以使用CONVERT()
强制将数据仅转换为ASCII:
Update Feedback set COMMENTS=CONVERT(COMMENTS, 'US7ASCII')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.