我從PHP轉換外部class到Python,它確實一些技巧等:二進制運算符在Python ...翻譯如果(C1> = 「 XC0」 &C1 <= 「 XDF」)
if ($c1 >= "\xc0" & $c1 <= "\xdf")
[...]
$cc1 = (chr(ord($c1)/64) | "\xc0");
[...]
$cc2 = ($c1 & "\x3f") | "\x80";
其中$ C1,^ $ CC1,$ CC2是字符
,我只是意識到,我不能與Python中使用它是這樣,因爲字符的字符串,而不是複製性被視爲「字符的二進制表示「運營商&和|有道理...
請問,你會如何翻譯任何這些在Pythonic的方式?
>>> c1 = "a"
>>> (c1 & "\x3f") | "\x80"
Traceback (most recent call last):
File "<pyshell#202>", line 1, in <module>
(c1 & "\x3f") | "\x80"
TypeError: unsupported operand type(s) for &: 'str' and 'str'
編輯:實際上,似乎這個PHP類不工作,所以它也不適合我的需要。非常感謝您的幫助。
第一個'&'沒有多大意義,甚至在PHP代碼。 – deceze 2013-02-08 16:26:38
「forceUTF8」級別的前提是非常糟糕的。我希望你不要依賴它來代替*正確處理字符編碼*。在正常操作中,不需要這樣的代碼。 – deceze 2013-02-08 16:29:13
其實我認爲目標是操縱字符的字節與面具,所以我認爲這是有道理的。我的問題不是「是否有意義」,我不是可以用「另一種方式」來完成「整個編碼修復事物」,而是「如何翻譯字符操作,例如提供給Python的三個示例。」我必須處理一些破損的編碼,所以我處於'異常'的情況,只是想先檢查這種方法,然後再依靠其他任何東西,並想從python中執行它... – user1340802 2013-02-08 16:32:02