我从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