为孟加拉语打印 unicode
printing unicode for bengali
我正在使用 goslate
进行 google 翻译 API
我可以将孟加拉语翻译成英语 -
>>> import goslate
>>> gs = goslate.Goslate()
>>> S = gs.translate("ভাল", 'en')
>>> S
good
但是,当我想将英语翻译成孟加拉语时出现了问题。
>>> import goslate
>>> gs = goslate.Goslate()
>>> S = gs.translate("good", 'bn')
>>> S
厄尔:
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-2: character maps to <undefined>
我该怎么办?
print repr(S)
output: u'\u09ad\u09be\u09b2'
print("ভাল")
output: à¦à¦¾à¦²
print(u"ভাল") # this gives UnicodeEncodeError
这对我有用
#coding: utf-8
from sys import setdefaultencoding, getdefaultencoding
d=getdefaultencoding()
if d != "utf-8":
setdefaultencoding('utf-8')
st="ভাল"
f=open('test.txt','w')
f.write(st.encode('utf-8'))
f.close()
if d != "utf-8":
setdefaultencoding(d)
这会按预期打印“ভাল”。
print st.encode('utf-8')
也有效。
绝对与goslate
无关。当无法使用控制台字符编码表示 Unicode 字符时,您的问题是使 print u'\u09ad\u09be\u09b2'
工作。
您要么需要将编码更改为可以表示 Unicode 字符的编码,例如 utf-8,要么使用 Unicode API,例如 WriteConsoleW
,假设您使用的是 Windows -- 如果您不在 Windows 上,那么只需将您的环境配置为使用 utf-8。
WriteConsoleW
usage is complicated though there is a simple to use win_unicode_console
package on Python 3。后者link还展示了如何将打印的Unicode文本保存到文件中(打印Unicode,设置PYTHONIOENCODING
)。
我正在使用 goslate
进行 google 翻译 API
我可以将孟加拉语翻译成英语 -
>>> import goslate
>>> gs = goslate.Goslate()
>>> S = gs.translate("ভাল", 'en')
>>> S
good
但是,当我想将英语翻译成孟加拉语时出现了问题。
>>> import goslate
>>> gs = goslate.Goslate()
>>> S = gs.translate("good", 'bn')
>>> S
厄尔:
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-2: character maps to <undefined>
我该怎么办?
print repr(S)
output: u'\u09ad\u09be\u09b2'
print("ভাল")
output: à¦à¦¾à¦²
print(u"ভাল") # this gives UnicodeEncodeError
这对我有用
#coding: utf-8
from sys import setdefaultencoding, getdefaultencoding
d=getdefaultencoding()
if d != "utf-8":
setdefaultencoding('utf-8')
st="ভাল"
f=open('test.txt','w')
f.write(st.encode('utf-8'))
f.close()
if d != "utf-8":
setdefaultencoding(d)
这会按预期打印“ভাল”。
print st.encode('utf-8')
也有效。
绝对与goslate
无关。当无法使用控制台字符编码表示 Unicode 字符时,您的问题是使 print u'\u09ad\u09be\u09b2'
工作。
您要么需要将编码更改为可以表示 Unicode 字符的编码,例如 utf-8,要么使用 Unicode API,例如 WriteConsoleW
,假设您使用的是 Windows -- 如果您不在 Windows 上,那么只需将您的环境配置为使用 utf-8。
WriteConsoleW
usage is complicated though there is a simple to use win_unicode_console
package on Python 3。后者link还展示了如何将打印的Unicode文本保存到文件中(打印Unicode,设置PYTHONIOENCODING
)。