python unicode麻烦帮我按句解释下,unicode()函数作用到底是什么?
defConvertStrData(self,strData):myCodec='iso8859'sdata=''ifTrue==isinstance(strData,s...
def ConvertStrData(self, strData):
myCodec='iso8859'
sdata=''
if True == isinstance(strData, str):
sdata=unicode(strData,myCodec) //这句话到底是什么意思?
elif True == isinstance(strData, unicode):
sdata=strData.encode('utf8')
sdata=sdata.decode(myCodec)
else:
numtmp=0
if True == isinstance(strData, float):
numtmp = int(strData)
else:
numtmp = strData
sdata = str(numtmp)
sdata=unicode(sdata,myCodec)
return sdata 展开
myCodec='iso8859'
sdata=''
if True == isinstance(strData, str):
sdata=unicode(strData,myCodec) //这句话到底是什么意思?
elif True == isinstance(strData, unicode):
sdata=strData.encode('utf8')
sdata=sdata.decode(myCodec)
else:
numtmp=0
if True == isinstance(strData, float):
numtmp = int(strData)
else:
numtmp = strData
sdata = str(numtmp)
sdata=unicode(sdata,myCodec)
return sdata 展开
展开全部
UNICODE函数wei 预先编写的公式,可以对一个或多个值执行运算,并返回一个或多个值。函数可以简化和缩短工作表中的公式,尤其在用公式执行很长或复杂的计算时的公式语法和用法。如果文本包含部分代理项或数据类型无效,则UNICODE返回错误值#VALUE!。
Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。
因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串ABC在Python内部都是ASCII编码的。
扩展资料
Unicode为了解决传统的字符编码方案的局限而产生的,例如ISO 8859所定义的字符虽然在不同的国家中广泛地使用,可是在不同国家间却经常出现不兼容的情况。
很多传统的编码方式都有一个共同的问题,即容许电脑处理双语环境(通常使用拉丁字母以及其本地语言),但却无法同时支持多语言环境(指可同时处理多种语言混合的情况)。
Unicode编码包含了不同写法的字,如“ɑ/a”、“户/户/戸”。然而在汉字方面引起了一字多形的认定争议。
参考资料来源:百度百科-Unicode
参考资料来源:百度百科-UNICODE 函数
展开全部
unicode函数按它的上下文来理解应该说就是这一句话的意思sdata=sdata.decode(myCodec)
这个ConvertStrData函数应该是将所有的str ,unicode, int,float数据类型都转换成utf-8,然后再直接解码显示出来。应该是做特殊用途的。可能是教学目的。也可能是编辑器的需要,或者说调试的需要。
一般不需要这么麻烦。似乎有一个"%b"%strData的办法直接实现这个功能。不过我不记得格式符了。 应该不是%b
在python中unicode也只是一种特殊的编码格式存放。我印象中似乎用的是utf-16,不过有些人说python3里用的是utf-8。
不过在逻辑上unicode是没有编码的格式。进行I/O输出的时候一定要做encode("utf-8")这样类似的操作。
不过unicode是python内部的函数。如果它这么用,显然是自己重新定义了unicode。
如果它没有重新定义,那么它的程序逻辑中有几处就是错的。 不一致。
这个ConvertStrData函数应该是将所有的str ,unicode, int,float数据类型都转换成utf-8,然后再直接解码显示出来。应该是做特殊用途的。可能是教学目的。也可能是编辑器的需要,或者说调试的需要。
一般不需要这么麻烦。似乎有一个"%b"%strData的办法直接实现这个功能。不过我不记得格式符了。 应该不是%b
在python中unicode也只是一种特殊的编码格式存放。我印象中似乎用的是utf-16,不过有些人说python3里用的是utf-8。
不过在逻辑上unicode是没有编码的格式。进行I/O输出的时候一定要做encode("utf-8")这样类似的操作。
不过unicode是python内部的函数。如果它这么用,显然是自己重新定义了unicode。
如果它没有重新定义,那么它的程序逻辑中有几处就是错的。 不一致。
更多追问追答
追问
请问,sdata=strData.encode('utf8')
sdata=sdata.decode(myCodec)
这句话倒过来是不是效果是一样的?
都是将strDdata转化成utf-8?
追答
不是这样子的。你这个程序我一直感觉它有问题。有可能它是错的。你从哪里弄来的代码?
比如:sdata=strData.encode('utf8')这句话的意思是将unicde编码成utf-8
而随之来的问题是sdata=sdata.decode(myCodec), 这句话是将string的bytecode,解压成unicode。
不过你原来是用utf-8编码的。为什么解码要用iso8859-1。这样显然是错误的。通常会出现异常。而且这样解码出来的也是乱码啦。
如果它仅仅是为了拿到原始内存中的bytecode,也不用这么decode啊。所以我才认为这个代码有问题。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-27 · 知道合伙人互联网行家
关注
展开全部
就是返回按照myCodec='iso8859'解释的unicode字符串。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询