in dubbo/codec/decoder.py [0:0]
def _read_utf(self, length):
"""
读取n个字符
:param length:
:return:
"""
value = u''
for i in xrange(length):
ch = self.read_byte()
if ch < 0x80:
value += unichr(ch)
elif (ch & 0xe0) == 0xc0:
ch1 = self.read_byte()
value += unichr(((ch & 0x1f) << 6) + (ch1 & 0x3f))
elif (ch & 0xf0) == 0xe0:
ch1 = self.read_byte()
ch2 = self.read_byte()
value += unichr(((ch & 0x0f) << 12) + ((ch1 & 0x3f) << 6) + (ch2 & 0x3f))
else:
raise ValueError('Can\'t parse utf-8 char {}'.format(ch))
return value.encode('utf-8') # 将unicode转化为str类型