[英]How do convert unicode escape sequences to unicode characters in a python string
[英]encode unicode characters to unicode escape sequences
我有一个包含网站和地址的 CSV 文件。 我需要处理这个文件以生成一个 json 文件,我将在 Django 中使用该文件将初始数据加载到我的数据库中。 为此,我需要将 CSV 文件中的所有特殊字符转换为 unicode 转义字符。
这是一个例子:
Örnsköldsvik;SE;Ornskoldsvik;Ångermanlandsgatan 28 A
它应该转换为:
\u00D6rnsk\u00F6ldsvik;SE;Ornskoldsvik;\u00C5ngermanlandsgatan 28 A
以下站点正在执行我期望的转换:http: //itpro.cz/juniconv/但我想找到一种从命令行(bash)或 python 中执行此操作的方法。 我已经尝试过使用iconv
、 uconv
和一些 python 脚本,但没有真正成功。
juniconv
网站背后运行着什么样的脚本?
预先感谢您的任何建议。
如果你想在 Python 中获得类似于 Java 的 Unicode 转义; 你可以使用 JSON 格式:
>>> import json
>>> import sys
>>> s = u'Örnsköldsvik;SE;Ornskoldsvik;Ångermanlandsgatan 28 A'
>>> json.dump(s, sys.stdout)
"\u00d6rnsk\u00f6ldsvik;SE;Ornskoldsvik;\u00c5ngermanlandsgatan 28 A"
还有, unicode-escape
编解码器,但你不应该使用它:它产生特定于 Python 的转义(Python Unicode 字符串文字的样子):
>>> print s.encode('unicode-escape')
\xd6rnsk\xf6ldsvik;SE;Ornskoldsvik;\xc5ngermanlandsgatan 28 A
您可以使用 GNU libiconv 的 --unicode-subst 选项来实现:
$ echo 'Örnsköldsvik;SE;Ornskoldsvik;Ångermanlandsgatan 28 A' | \
iconv -t ASCII --unicode-subst='\u%04X'
\u00D6rnsk\u00F6ldsvik;SE;Ornskoldsvik;\u00C5ngermanlandsgatan 28 A
顺便说一句,GNU libiconv 也有一个称为 JAVA 的伪编码,它可以做到这一点:
$ echo 'Örnsköldsvik;SE;Ornskoldsvik;Ångermanlandsgatan 28 A' | \
iconv -t JAVA
\u00d6rnsk\u00f6ldsvik;SE;Ornskoldsvik;\u00c5ngermanlandsgatan 28 A
注意:GNU libiconv不是包含在 glibc 中的 iconv。 它是一个单独的包,通常不会安装在 glibc 系统上,因为 glibc 的 iconv 对 99% 的目的都一样好。
也许这样的事情可以帮助你? 我假设你有一个 utf-8 字符串......
import csv
csv_reader = csv.reader(utf8_data)
for row in csv_reader:
encoded_row = [unicode(cell, 'utf-8') for cell in row]
#print(encoded_row)
您始终可以使用 Visual Studio Code 并安装 ascii-unicode-escape 扩展。 安装后,您可以使用 Ctrl-Shift-P 并运行“转义非 ASCII 字符”命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.