昨天,我写了以下function
将integer
转换为{
def integerToPersian(number):
listedPersian = ['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹']
listedEnglish = ['0','1','2','3','4','5','6','7','8','9']
returnList = list()
listedTmpString = list(str(number))
for i in listedTmpString:
returnList.append(listedPersian[listedEnglish.index(i)])
return ''.join(returnList)
当你把它叫做:integerToPersian(3455)
,它return ۳۴۵۵
,
۳۴۵۵
相当于Persian
和Arabic language
中的3455
一个数字,例如从databae
读取,并希望在widget
中显示,则
function
非常有用。在
我从http://unicode.org下载了unicode
的codes charts
,因为我需要编写PersianToInteger('unicodeString')
,根据它应该得到utf-8
作为参数,utf-8
存储{
我的问题是,如何存储2bytes
?,如何存储utf8
,如何将unicode string
拆分为另一种格式?如何使用unicode code charts
?在
注意:我发现我使用了int() built-in fuinction
,但我不能使用可能吧你可以吗
您需要阅读Python 2.x或3.x的Python Unicode HOWTO。但我可以给你简短的回答。在
unicode
对象包含字符,bytes
对象包含字节。在这和Python中的一样。在这两种语言中,既没有},以及{}和{}前缀。在
u
也没有b
前缀的文字就是str
。因为您没有告诉我们您使用的是python2还是python3,所以我将在任何地方使用显式的unicode
和{通过选择一个编码(在本例中是UTF-8)并使用}方法在它们之间进行转换。例如:
encode
和{如果您有一个UTF-8},并用Unicode完成所有工作。然后你就不必担心什么东西需要多少字节,只要把每个字符都当作一个字符就行了。如果需要UTF-8输出,
bytes
对象,您应该尽早将其decode
转换成{encode
尽可能晚地返回。在(有时,解码和编码的性能成本太高,需要直接处理UTF-8。但除非这确实是代码中的瓶颈,否则不要这样做。)
因此,假设您希望调整}更改为{},就这样。在
integerToPersian
以获取UTF-8英文数字字符串而不是整数,并返回UTF-8波斯语数字字符串而不是Unicode数字字符串。(在本例中,我假设使用Python3)您只需将str(number)
更改为number.decode('utf-8')
,并将{Python已经提供了编译到^{} 模块中的Unicode代码图(以及与您的Python版本相匹配的正确代码图),因此通常只使用这些代码图要比自己尝试使用这些代码图容易得多。例如:
^{pr2}$你真的不需要。除非您使用的是非常旧的Python,
int
应该可以为您完成。例如,在2.6中:如果不适合您,
unicodedata
是最简单的解决方案:但是,这两种方法都会将任何脚本中的数字转换为数字,而不仅仅是波斯语。Unicode图表中没有任何东西可以直接告诉您一个数字是波斯语;您可以做的最好是解析名称:
如果您真的想通过将数字从一个脚本映射到另一个脚本来实现任意方向的操作,下面是一个更好的解决方案:
相关问题 更多 >
编程相关推荐