i tried this way ,and post it in stackoverflow,please see: maybe it is the best answer. Codepage 65001 is generally broken in binary mode as used by Python 3, since _write calls Win32 WriteFile, which calls WriteConsoleA, which returns the number of characters written instead of the number of bytes. That confuses Python. ANSICON <https://github.com/adoxa/ansicon> can hook WriteFile to fix this for programs that you specify in an environment variable, but that won't help with input.
http://stackoverflow.com/questions/22977409/how-to-display-chinese-character-in-65001-in-pytohn?noredirect=1#comment35087732_22977409 2014-04-10 10:27 GMT+08:00 MRAB <pyt...@mrabarnett.plus.com>: > On 2014-04-10 02:54, length power wrote: > >> I am in win7 +python3.3. >> >> import os >> os.system("chcp 936") >> fh=open("test.ch <http://test.ch>","w",encoding="utf-8") >> >> fh.write("你") >> fh.close() >> os.system("chcp 65001") >> fh=open("test.ch <http://test.ch>","r",encoding="utf-8").read() >> >> print(fh) >> Äã >> >>> print(fh.encode("utf-8")) >> b'\xe4\xbd\xa0' >> >> How can i display the chinese character `你` in 65001? >> >> The "chcp 65001" tells the operating system to use UTF-8, but you also > have to tell Python to output UTF-8. Try this: > > from codecs import getwriter > sys.stdout = getwriter('utf-8')(sys.stdout.detach()) > > -- > https://mail.python.org/mailman/listinfo/python-list >
-- https://mail.python.org/mailman/listinfo/python-list