python unicode 获取值/获取文本
python unicode get value / get text
假设我有一个 unicode 变量:
uni_var = u'Na teatr w pi\xc4\x85tek'
我想要一个与 uni_var
相同的字符串,只是没有 "u",所以:
str_var = 'Na teatr w pi\xc4\x85tek'
我该怎么做?我想找到类似的东西:
str_var = uni_var.text()
您需要将字符串编码为 Latin-1
>>> uni_var = u'Na teatr w pi\xc4\x85tek'
>>> uni_var.encode('Latin-1')
'Na teatr w pi\xc4\x85tek'
您的 Unicode 解码似乎很糟糕;这些是 UTF-8 字节屏蔽为 Latin-1 代码点。
您可以通过编码到将 Unicode 代码点一对一映射到字节的编解码器来恢复正确的 UTF-8 字节,例如 Latin-1:
>>> uni_var = u'Na teatr w pi\xc4\x85tek'
>>> uni_var.encode('latin1')
'Na teatr w pi\xc4\x85tek'
但要小心;也可能是这里使用了CP1252编码解码成Unicode。这完全取决于这个 Mojibake 的产地。
您也可以使用 ftfy
library 来检测如何最好地修复它;它产生 Unicode 输出:
>>> import ftfy
>>> uni_var = u'Na teatr w pi\xc4\x85tek'
>>> ftfy.fix_text(uni_var)
u'Na teatr w pi\u0105tek'
>>> print ftfy.fix_text(uni_var)
Na teatr w piątek
库将自动处理 CP1252 Mojibake。
假设我有一个 unicode 变量:
uni_var = u'Na teatr w pi\xc4\x85tek'
我想要一个与 uni_var
相同的字符串,只是没有 "u",所以:
str_var = 'Na teatr w pi\xc4\x85tek'
我该怎么做?我想找到类似的东西:
str_var = uni_var.text()
您需要将字符串编码为 Latin-1
>>> uni_var = u'Na teatr w pi\xc4\x85tek'
>>> uni_var.encode('Latin-1')
'Na teatr w pi\xc4\x85tek'
您的 Unicode 解码似乎很糟糕;这些是 UTF-8 字节屏蔽为 Latin-1 代码点。
您可以通过编码到将 Unicode 代码点一对一映射到字节的编解码器来恢复正确的 UTF-8 字节,例如 Latin-1:
>>> uni_var = u'Na teatr w pi\xc4\x85tek'
>>> uni_var.encode('latin1')
'Na teatr w pi\xc4\x85tek'
但要小心;也可能是这里使用了CP1252编码解码成Unicode。这完全取决于这个 Mojibake 的产地。
您也可以使用 ftfy
library 来检测如何最好地修复它;它产生 Unicode 输出:
>>> import ftfy
>>> uni_var = u'Na teatr w pi\xc4\x85tek'
>>> ftfy.fix_text(uni_var)
u'Na teatr w pi\u0105tek'
>>> print ftfy.fix_text(uni_var)
Na teatr w piątek
库将自动处理 CP1252 Mojibake。