Python论坛  - 讨论区

标题:=?ISO-8859-1?Q?Re: Re: [python-chinese] =D5=E6=CA=C7=C6=E6=B9=D6=D1=BD=A3=A1?=

2005年02月19日 星期六 00:33

limodou limodou at gmail.com
Sat Feb 19 00:33:31 HKT 2005

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


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年02月19日 星期六 00:39

cry zyqmail at 163.net
Sat Feb 19 00:39:29 HKT 2005

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




[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号