Как преобразовать массив значений Unicode обратно в текстовую форму в Julia?

Я изучаю Джулию для своего следующего проекта, потому что данные действительно содержат много текста, и мы стремимся сделать код более эффективным и быстрым. Так что в качестве экспериментов я учу Юлию.

Теперь я узнал, что есть действительно хороший способ ввести символы Юникода в Julia. Например:

"⎔" можно сделать с помощью "\hexagon"+tab

Есть ли способ вернуть текстовую версию этих символов Юникода?

Итак, я как бы спрашиваю:

Для каждого из них:

("⬙", "☽", "⎔", "⬟", "◁")

Могу я вернуться:

("diamondbotblack", "rightmoon", "hexagon", "pentagonblack", "triangleleft")

Поскольку мы не можем сохранить их вместе с \, например \pentagon, потому что помечаем его как: syntax: invalid escape sequence, прекрасно, если я могу вернуть массив строк без \.

Кто-нибудь знает, как это сделать? Я уже искал это в Google и искал в Stackoverflow, размещенном на одном из форумов, но пока не нашел никакого решения.


person Amit Amola    schedule 27.12.2020    source источник


Ответы (2)


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

using REPL
tmp_d = REPL.REPLCompletions.latex_symbols
mapping = Dict(values(tmp_d) .=> keys(tmp_d))

и теперь вы можете:

julia> map(v -> mapping[v], ("⬙", "☽", "⎔", "⬟", "◁"))
("\\diamondbotblack", "\\rightmoon", "\\hexagon", "\\pentagonblack", "\\triangleleft")

Я оставил ведущий "\\", но вы можете удалить его, если хотите.

person Bogumił Kamiński    schedule 27.12.2020

Еще одна хорошая идея - использовать специальный пакет:

julia> using Unidecode

julia> decode_latex.(["⬙", "☽", "⎔", "⬟", "◁"])
5-element Array{String,1}:
 "diamondbotblack"
 "rightmoon"
 "hexagon"
 "pentagonblack"
 "triangleleft"
person Przemyslaw Szufel    schedule 30.12.2020