2005年08月18日 星期四 17:11
有的函数好像不支持除ascii之外的unicode object 谢谢!
2005年08月18日 星期四 17:15
在 05-8-18,Jason Liu<telecomliu at gmail.com> 写道: > 有的函数好像不支持除ascii之外的unicode object 是的。需要使用unicode对象本身的encode方法。 -- I like python! My Donews Blog: http://www.donews.net/limodou
2005年08月18日 星期四 23:47
在 05-8-18,limodou<limodou at gmail.com> 写道: > 是的。需要使用unicode对象本身的encode方法。 > 我试过。如果unicode object中包含>127的字符就不能用unicode.encode('ascii')来转换,否则会报错。
2005年08月19日 星期五 01:13
On 8/18/05, Jason Liu <telecomliu at gmail.com> wrote: > 在 05-8-18,limodou<limodou at gmail.com> 写道: > > > 是的。需要使用unicode对象本身的encode方法。 > > > 我试过。如果unicode object中包含>127的字符就不能用unicode.encode('ascii')来转换,否则会报错。 如果你的字符串里包含非ascii字符,你当然不能用unicode.encode('ascii')了。ascii是一种编码,不是Python(非unicode)字符串的称呼。你可以将一个unicode字符串编码成ascii之外的合适的(要看你的具体内容)的编码。我建议你编码成utf-8,unicode.encode("utf-8")。如果你想得到gbk编码的字符串,你也可以用unicode.encode("gtk"),但你要保证其中只有ascii字符和中文。
2005年08月19日 星期五 08:29
在 05-8-19,Jacob Fan<jacob.fan at gmail.com> 写道: > 如果你的字符串里包含非ascii字符,你当然不能用unicode.encode('ascii')了。ascii是一种编码,不是Python(非unicode)字符串的称呼。你可以将一个unicode字符串编码成ascii之外的合适的(要看你的具体内容)的编码。我建议你编码成utf-8,unicode.encode("utf-8")。如果你想得到gbk编码的字符串,你也可以用unicode.encode("gtk"),但你要保证其中只有ascii字符和中文。 老大,我想要的是把uncode object转为str。问题的出发点就是有的函数不支持unicode参数,而我的字符串是包含中文字符的unicode object,至于它是不是utf-8跟我的问题没关系啊。
2005年08月19日 星期五 09:00
在 05-8-19,Jason Liu<telecomliu at gmail.com> 写道: > 在 05-8-19,Jacob Fan<jacob.fan at gmail.com> 写道: > > > 如果你的字符串里包含非ascii字符,你当然不能用unicode.encode('ascii')了。ascii是一种编码,不是Python(非unicode)字符串的称呼。你可以将一个unicode字符串编码成ascii之外的合适的(要看你的具体内容)的编码。我建议你编码成utf-8,unicode.encode("utf-8")。如果你想得到gbk编码的字符串,你也可以用unicode.encode("gtk"),但你要保证其中只有ascii字符和中文。 > > 老大,我想要的是把uncode > object转为str。问题的出发点就是有的函数不支持unicode参数,而我的字符串是包含中文字符的unicode > object,至于它是不是utf-8跟我的问题没关系啊。 > 对于str来说它可以有许多的编码方式,当然与你的问题有关系呀。比如说unicode字符"中国"u'\u4e2d\u56fd'转换为gb2312码方式的字符串为:'\xd6\xd0\xb9\xfa',而转为utf-8为:'\xe4\xb8\xad\xe5\x9b\xbd'。因为不同的编码生成的字符串编码也是不同的。如果都是ascii就没有这个问题,而对于中文就不那么简单。 -- I like python! My Donews Blog: http://www.donews.net/limodou
2005年08月19日 星期五 10:23
在 05-8-19,limodou<limodou at gmail.com> 写道: > 对于str来说它可以有许多的编码方式,当然与你的问题有关系呀。比如说unicode字符"中国"u'\u4e2d\u56fd'转换为gb2312码方式的字符串为:'\xd6\xd0\xb9\xfa',而转为utf-8为:'\xe4\xb8\xad\xe5\x9b\xbd'。因为不同的编码生成的字符串编码也是不同的。如果都是ascii就没有这个问题,而对于中文就不那么简单。 我遇到的问题是有个函数只能识别str(包含中文)参数,遇到unicode(包含中文)就报错,与这个unicode object本身的编码方式无关。 因此我想问问有没有将unicode object转换成str的方法,所以我才说编码方式与我的问题无关的。
2005年08月19日 星期五 10:37
encode和decode可以。 在 05-8-19,Jason Liu<telecomliu at gmail.com> 写道: > 在 05-8-19,limodou<limodou at gmail.com> 写道: > > > 对于str来说它可以有许多的编码方式,当然与你的问题有关系呀。比如说unicode字符"中国"u'\u4e2d\u56fd'转换为gb2312码方式的字符串为:'\xd6\xd0\xb9\xfa',而转为utf-8为:'\xe4\xb8\xad\xe5\x9b\xbd'。因为不同的编码生成的字符串编码也是不同的。如果都是ascii就没有这个问题,而对于中文就不那么简单。 > > 我遇到的问题是有个函数只能识别str(包含中文)参数,遇到unicode(包含中文)就报错,与这个unicode object本身的编码方式无关。 > > 因此我想问问有没有将unicode object转换成str的方法,所以我才说编码方式与我的问题无关的。 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- 梅劲松
2005年08月19日 星期五 10:54
在 05-8-19,Jason Liu<telecomliu at gmail.com> 写道: > 在 05-8-19,limodou<limodou at gmail.com> 写道: > > > 对于str来说它可以有许多的编码方式,当然与你的问题有关系呀。比如说unicode字符"中国"u'\u4e2d\u56fd'转换为gb2312码方式的字符串为:'\xd6\xd0\xb9\xfa',而转为utf-8为:'\xe4\xb8\xad\xe5\x9b\xbd'。因为不同的编码生成的字符串编码也是不同的。如果都是ascii就没有这个问题,而对于中文就不那么简单。 > > 我遇到的问题是有个函数只能识别str(包含中文)参数,遇到unicode(包含中文)就报错,与这个unicode object本身的编码方式无关。 str本身就有许多的编码,"中国"可以用gb2312编码也可以使用utf-8编码,编码不同但它们还算是string。我并没有说是unicode本身的编码方式,而是unicode转为str时编码不同转换的结果不同,而且有些指定的编码不对还会报错。 > > 因此我想问问有没有将unicode object转换成str的方法,所以我才说编码方式与我的问题无关的。 > unicode转换为string就是使用unicode本身的encode就行,但要指明你所使用的编码。编码不对根本就转不了。因此你写的a.encode('ascii')才会报错。这就是原因:你的编码没指对。 -- I like python! My Donews Blog: http://www.donews.net/limodou
2005年08月19日 星期五 16:00
在 05-8-19,limodou<limodou at gmail.com> 写道: > str本身就有许多的编码,"中国"可以用gb2312编码也可以使用utf-8编码,编码不同但它们还算是string。我并没有说是unicode本身的编码方式,而是unicode转为str时编码不同转换的结果不同,而且有些指定的编码不对还会报错。 是我错了。一知半解还自以为很懂,惭愧惭愧! 谢谢大家的指导和耐心!
Zeuux © 2025
京ICP备05028076号