Нужно преобразовать строку Θ в Θ

Приложение My Rails хранит строки, содержащие коды сущностей html, например. «Θ», которые отображают греческие и другие символы на страницах браузера. Чтобы отобразить эти же символы в документах Prawn, мне нужно преобразовать «Θ» в «Θ». Используя регулярное выражение, я могу извлечь голую кодовую точку «0398» из исходной строки. Но я не могу использовать это для создания новой строковой переменной, содержащей «\ u0398».

Я пробовал много вариантов конкатенации строк, интерполяции и даже операций с массивами, но безуспешно. Все, что похоже

new_string_var = "\u" + my_codepoint

генерирует ошибку "недопустимый escape-код Unicode" в "\u".

Все, что похоже

new_string_var = "\\u" + my_codepoint

выполняется без ошибок, но вставляет литеральную строку "\ u0398" в документ Prawn.

Возможно ли в Ruby создать такую ​​строку? Есть ли лучший подход?


person drubin    schedule 18.03.2014    source источник


Ответы (1)


На самом деле вам не нужна нотация \uxxxx — она предназначена для отображения в Ruby. Попробуйте CGI.unescapeHTML(string_with_entities) из встроенного модуля CGI.

person Migol    schedule 18.03.2014
comment
Красиво, как раз то, что нам нужно. Благодарю вас! - person drubin; 20.03.2014