1

指定されていない型の文字列オブジェクトがあります。これは types.StringTypes に一致しますが、type.StringType または type.UnicodeType の可能性があります - 何を受け取るかわかりません。入ってくるものを必ずしも制御することはできません。

私の問題は、文字列型にASCII以外の文字があり、呼び出しをミサカ(日没パーサー)に渡すと発生します

この例では、 unichr(8250) / u'\u203a' を扱っているため、エラー ログで数回発生しました...

a = "›"
b = u"›"

print type(a) # <type 'str'>
print type(b) # <type 'unicode'>

print a # fine
print b # fine

import misaka

markdown_renderer = misaka.HtmlRenderer()
renderer = misaka.Markdown( markdown_renderer )

try:
    print renderer.render( a )
    #this will fail
    print "GOOD a"
except:
    print "FAILED a"

try:
    print renderer.render( b )
    #this will pass
    print "GOOD b"
except:
    print "FAILED b"

「a」オブジェクトをミサカが問題にならないものに変える方法がわかりません。'b' は常に機能します。誰でも提案できますか?

4

1 に答える 1

2

a がstr常に失敗しても a がunicode常に成功する場合は、オブジェクトを渡す前にデコードする必要があると思わstrれます。秘訣は、エンコーディングを知っていることですa.decode('utf-8')。しかし、わからない場合は、chardetパッケージが妥当な推測を行うことを理解しています。ただし、できることは推測だけであることに注意してください。

于 2013-05-20T20:48:49.540 に答える