1

これらの文字を文字列でどのように置き換えることができますか: r'\xb0' を r'\260' に置き換えます。

test = u'\xb0C'
test = test.encode('latin1')
test = test.replace(r'\xb0', r'\260')

しかし、うまくいきません。問題は、データを 16 進形式などではなく 8 進形式 (「\260C」など) でファイルに書き込む必要があることです。

4

1 に答える 1

2

ということですか

>>> test.encode('unicode-escape').replace(r'\xb0', r'\260')
'\\260C'

また

>>> ''.join('\\%o' % ord(c) for c in test)
'\\260\\103'

または最も寛大なアプローチ(実際にはOPによって要求されていることが判明しました)

>>> table = {i: unicode(chr(i)) if 32 <= i < 128 else u'\\%o' % i for i in range(256)}
>>> u'\xb0ABD\260'.translate(table)
u'\\260ABD\\260'
于 2013-11-09T19:04:03.863 に答える