Расшифровать другие языки - PullRequest
0 голосов
/ 16 июня 2020

В python у меня есть текст на других языках как,

import json

name = "அரவிந்த்"

result = {"Name": name}
j_res = json.dumps(result)
print j_res

Вывод:

{"Name": "\u0b85\u0bb0\u0bb5\u0bbf\u0ba8\u0bcd\u0ba4\u0bcd"}

Есть ли способы получить имя அரவிந்த் из \ u0b85 \ u0bb0 \ u0bb5 \ u0bbf \ u0ba8 \ u0bcd \ u0ba4 \ u0bcd этот текст .?

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Да, все очень просто:

# -*- coding: utf-8 -*-

import json

name = "அரவிந்த்"

result = {"Name": name}
j_res = json.dumps(result)

print j_res
print json.loads(j_res)
print json.loads(j_res)["Name"]

Вывод:

{"Name": "\u0b85\u0bb0\u0bb5\u0bbf\u0ba8\u0bcd\u0ba4\u0bcd"}
{u'Name': u'\u0b85\u0bb0\u0bb5\u0bbf\u0ba8\u0bcd\u0ba4\u0bcd'}
அரவிந்த்
0 голосов
/ 16 июня 2020

В Python 2.7 строки представляют собой просто наборы кодировки ASCII (от 0 до 255 бит) .. если вам нужно обрабатывать и отображать символы, превышающие эти 256 символов, вы почти наверняка должны использовать unicode объекты (с префиксом u) вместо наивного str (по умолчанию для новых строк).

В Python 3+ эта проблема решается строками представляющие собой массивы необработанных байтов с соответствующей кодировкой (обычно utf-8), которые могут представлять все типы символов, обнаруженные в кодировке. Если вы можете использовать Python 3, это может решить эту и многие аналогичные проблемы, связанные с тем, как строки и символы сохраняются и отображаются для вас.

Если вы вынуждены использовать Python 2.7, вам следует прочтите их с кодировкой и убедитесь, что они загружены как unicode

...