RoR класс персонажей регулярное выражение - PullRequest
8 голосов
/ 18 марта 2012

В моем приложении Ruby on Rails есть следующая строка кода, которая проверяет, содержит ли данная строка корейские символы или нет:

isKorean = !/\p{Hangul}/.match(word).nil?

Отлично работает в консоли, но вызывает синтаксическую ошибку для реального приложения:

invalid character property name {Hangul}: /\p{Hangul}/

Что мне не хватает и как мне заставить его работать?

1 Ответ

13 голосов
/ 18 марта 2012

Это проблема кодировки символов, вам нужно добавить:

# encoding: utf-8

в начало файла Ruby, в котором вы используете это регулярное выражение. Возможно, вы можете использовать любую кодировку этого класса символов, которую вы используете.Вы используете существует вместо UTF-8, если хотите.Обратите внимание, что в Ruby 2.0 UTF-8 теперь используется по умолчанию, поэтому в Ruby 2.0 + это не требуется.

Это называется «волшебным комментарием».Вы можете и должны прочитать больше о кодировке в Ruby 1.9 .Обратите внимание, что кодирование в представлениях Rails автоматически обрабатывается config.encoding (по умолчанию в config/application.rb установлено значение UTF-8.

Вероятно, это работало в консоли, поскольку ваш терминал уже настроен на использование UTF-8.

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