2005年02月19日 星期六 00:33
utf-8就是字节串了。 麻烦也没有办法,这种编码间的转换是很多的。因为unicode与一般的string是不 同的,一个unicode字符数值要大于256。而我们使用的各种系统本来就是不同的, 最早都是使用ascii,为了处理亚洲文字则使用二个字节进行处理,为了统一全球 的文字则使用unicode进行处理。但很多系统还停留在使用ascii编码之上。因此转 换是必须的。 可以把接收和发送作成两个公共函数进行封装,在其中进行转换即可。 cry wrote: > limodou,您好! > > 关键是SOCKET的另一端还需要做这种工作,启不是很麻烦。别人做应用也麻烦。 > 那换一个思路,unicode转换成字节串,用什么方法? > > 在 2005-02-19 00:18:00 您写道: > >>好象不行。就象底层的文件操作一样,都是ascii字符的,不支持unicode(因为 >>unicode一般是2个字节)。 >> >>先转化为utf-8再传送,收到后再转为unicode即可。 >> >>cry wrote: >> >>>python,您好! >>> >>>我准备了一个UNICODE字符串,里面又中文又数字,在socket下用send()方法送,居然出现encode错误,难道send是不能发送unicode吗? >>> >>> from types import StringType, UnicodeType >>> ss = s+"\r\n" >>> print isinstance(ss, UnicodeType) >>> self._sock.send(ss) >>> >>>True >>> >>>UnicodeEncodeError: 'ascii' codec can't encode characters in position 34-36: ordinal not in range(128) >>> >>>谁知道这个问题怎么解决吗? >>> >>>看来PYTHON不在核心代码中解决字符编码是不行的。 >>> >>> 致 >>>礼! >>> >>> cry >>> zyqmail at 163.net >>> >>> >>>_______________________________________________ >>>python-chinese list >>>python-chinese at lists.python.cn >>>http://python.cn/mailman/listinfo/python-chinese >>> >> >>-- >>I love python! >>My Blog: http://www.donews.net/limodou >>_______________________________________________ >>python-chinese list >>python-chinese at lists.python.cn >>http://python.cn/mailman/listinfo/python-chinese > > > 致 > 礼! > > cry > zyqmail at 163.net > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > -- I love python! My Blog: http://www.donews.net/limodou
2005年02月19日 星期六 00:39
limodou,您好! utf-8已经把UNICODE的编码改变了,好象不太适合我的应用。 我还是找一找如何把UNICODE字符串变成一个数据队列吧。 谢谢你的帮助。 在 2005-02-19 00:33:00 您写道: >utf-8就是字节串了。 > >麻烦也没有办法,这种编码间的转换是很多的。因为unicode与一般的string是不 >同的,一个unicode字符数值要大于256。而我们使用的各种系统本来就是不同的, >最早都是使用ascii,为了处理亚洲文字则使用二个字节进行处理,为了统一全球 >的文字则使用unicode进行处理。但很多系统还停留在使用ascii编码之上。因此转 >换是必须的。 > >可以把接收和发送作成两个公共函数进行封装,在其中进行转换即可。 > >cry wrote: >> limodou,您好! >> >> 关键是SOCKET的另一端还需要做这种工作,启不是很麻烦。别人做应用也麻烦。 >> 那换一个思路,unicode转换成字节串,用什么方法? >> >> 在 2005-02-19 00:18:00 您写道: >> >>>好象不行。就象底层的文件操作一样,都是ascii字符的,不支持unicode(因为 >>>unicode一般是2个字节)。 >>> >>>先转化为utf-8再传送,收到后再转为unicode即可。 >>> >>>cry wrote: >>> >>>>python,您好! >>>> >>>>我准备了一个UNICODE字符串,里面又中文又数字,在socket下用send()方法送,居然出现encode错误,难道send是不能发送unicode吗? >>>> >>>> from types import StringType, UnicodeType >>>> ss = s+"\r\n" >>>> print isinstance(ss, UnicodeType) >>>> self._sock.send(ss) >>>> >>>>True >>>> >>>>UnicodeEncodeError: 'ascii' codec can't encode characters in position 34-36: ordinal not in range(128) >>>> >>>>谁知道这个问题怎么解决吗? >>>> >>>>看来PYTHON不在核心代码中解决字符编码是不行的。 >>>> >>>> 致 >>>>礼! >>>> >>>> cry >>>> zyqmail at 163.net >>>> >>>> >>>>_______________________________________________ >>>>python-chinese list >>>>python-chinese at lists.python.cn >>>>http://python.cn/mailman/listinfo/python-chinese >>>> >>> >>>-- >>>I love python! >>>My Blog: http://www.donews.net/limodou >>>_______________________________________________ >>>python-chinese list >>>python-chinese at lists.python.cn >>>http://python.cn/mailman/listinfo/python-chinese >> >> >> 致 >> 礼! >> >> cry >> zyqmail at 163.net >> >> >> _______________________________________________ >> python-chinese list >> python-chinese at lists.python.cn >> http://python.cn/mailman/listinfo/python-chinese >> > >-- >I love python! >My Blog: http://www.donews.net/limodou >_______________________________________________ >python-chinese list >python-chinese at lists.python.cn >http://python.cn/mailman/listinfo/python-chinese 致 礼! cry zyqmail at 163.net
Zeuux © 2025
京ICP备05028076号