相关疑难解决方法(0)

在Python unicode字符串中处理错误编码的字符

我正在处理python-lastfm库返回的unicode字符串.

我假设在某个地方,库得到编码错误并返回一个可能包含无效字符的unicode字符串.

例如,我期望变量a中的原始字符串是"Glück"

>>> a
u'Gl\xfcck'
>>> print a
Traceback (most recent call last):
  File "", line 1, in 
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 2: ordinal not in range(128)

\ xfc是转义值252,它对应于"ü"的latin1编码.不知怎的,它以一种python无法独立处理的方式嵌入到unicode字符串中.

如何将此转换为包含原始"Glück"的普通或unicode字符串?我尝试使用解码/编码方法,但要么得到了一个UnicodeEncodeError,要么是一个包含序列\ xfc的字符串.

python string unicode character-encoding

17
推荐指数
2
解决办法
4万
查看次数

只包含ASCII字符的UNICODE字符串是否总是等于ASCII字符串?

我注意到以下情况:

>>> u'abc' == 'abc'
True
>>> 'abc' == u'abc'
True
Run Code Online (Sandbox Code Playgroud)

这总是正确的还是可能取决于系统区域设置?(似乎字符串在python 3中是unicode:例如这个问题,但2.x中的字节)

python unicode character-encoding python-2.7 python-unicode

17
推荐指数
1
解决办法
500
查看次数

在python中的str上使用encode时会发生什么?

我明白了unicode,编码和解码.但我不明白为什么编码功能适用于str类型.我希望它只适用于unicode类型.因此我的问题是:当它在str而不是unicode上使用时,编码的行为是什么?

python string unicode encode python-2.x

6
推荐指数
1
解决办法
469
查看次数

Python UTF-8 REGEX

我在尝试查找正则表达式中指定的文本时遇到问题.一切都工作得很好但是当我在我的正则表达式中添加"\£"时它开始引起问题.我得到了SyntaxError.文件(...)中的"非ASCII字符"\ xc2"但没有声明编码...

我试图用这个来解决这个问题

import sys
reload(sys)  # to enable `setdefaultencoding` again
sys.setdefaultencoding("UTF-8")
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.我只想构建正则表达式并在那里使用井号.标志re.Unicode标志没有帮助,保存字符串作为unicode(拍)没有帮助.有没有解决这个正则表达式的解决方案?我只想构建正则表达式并在那里使用英镑符号.谢谢你的帮助.

                    k = text.encode('utf-8')
                    pat = u'salar.{1,6}?([0-9\-,\. \tkFFRroOMmTtAanNuUMm\$\&\;\£]{2,})'
                    pattern = re.compile(pat, flags = re.DOTALL|re.I|re.UNICODE)
                    salary =  pattern.search(k).group(1)
                    print (salary)
Run Code Online (Sandbox Code Playgroud)

即使我发表评论错误仍然存​​在(放"#"并跳过所有这些行.也许它与re.库没有关联,但我的设置?

python regex unicode

2
推荐指数
1
解决办法
872
查看次数