繁体   English   中英

UnicodeEncodeError:从数据库表中替换或删除Unicode字符“ \\ u2019”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM