Python конвертирует содержимое файла в форму Unicode - PullRequest
2 голосов
/ 07 сентября 2011

Например, у меня есть файл a.js, содержимое которого:

Hello, 你好, bye.  

Который содержит два китайских символа, чья юникодная форма \u4f60\u597d
Я хочу написать программу на python, которая конвертирует китайские символы в a.js в форму unicode для вывода b.js, содержание которого должно быть: Hello, \u4f60\u597d, bye.

Мой код:

fp = open("a.js")
content = fp.read()
fp.close()

fp2 = open("b.js", "w")
result = content.decode("utf-8")
fp2.write(result)
fp2.close()  

но похоже, что китайские иероглифы - это все еще один символ, а не строка ASCII, как я хочу.

Ответы [ 4 ]

5 голосов
/ 07 сентября 2011
>>> print u'Hello, 你好, bye.'.encode('unicode-escape')
Hello, \u4f60\u597d, bye.

Но вы должны рассмотреть возможность использования JSON через json.

1 голос
/ 07 сентября 2011

Вы можете попробовать модуль кодеков

codecs.open (имя файла, режим [, кодировка [, ошибки [, буферизация]]])

a = codecs.open("a.js", "r", "cp936").read() # a is a unicode object

codecs.open("b.js", "w", "utf16").write(a)
0 голосов
/ 07 сентября 2011

Вы можете использовать repr:

a = u"Hello, 你好, bye. "
print repr(a)[2:-1]

или использовать метод кодирования:

print a.encode("raw_unicode_escape")
print a.encode("unicode_escape")
0 голосов
/ 07 сентября 2011

Я обнаружил, что repr (content.decode ("utf-8")) вернет "u'Hello, \u4f60\u597d, bye'"
, поэтому repr(content.decode("utf-8"))[2:-1] выполнит работу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...