Ruby on rails, как удалить пробелы из японского слова?

Я пытаюсь удалить пробел из японского слова.

input   "かいしゃ(会社)"
output  "かいしゃ(会社)"

person vvp.rb    schedule 29.01.2021    source источник
comment
видели ли вы функцию stackoverflow.com/ вопросы / 1634750 /   -  person Suraj Rao    schedule 29.01.2021
comment
да. я видел, но это не сработало в японских словах.   -  person vvp.rb    schedule 29.01.2021
comment
@ vvp.rb: в следующий раз упомяните о проведенном вами исследовании. Экономит время и предотвращает отрицательные голоса.   -  person Sergio Tulentsev    schedule 29.01.2021


Ответы (1)


Здесь пространство занято круглыми скобками. Это не обычные скобки ASCII, они имеют полную ширину аромат.

Если вы хотите заменить их скобками ASCII, вы можете сделать это следующим образом:

compact_input = input.gsub("\uFF08", '(') # and a similar step for the closing parenthesis

Хотя из-за этого ваша строка может выглядеть странно на японском (я недостаточно хорошо знаю язык, поэтому не могу сказать)

person Sergio Tulentsev    schedule 29.01.2021
comment
Я сделал закрывающую скобку, не сработало - person vvp.rb; 29.01.2021
comment
@ vvp.rb: значит ты что-то не так сделал. Вы использовали правильный код для правой круглой скобки во всю ширину? - person Sergio Tulentsev; 29.01.2021
comment
@Stefan: хотя это, несомненно, должно сработать, я думаю, что в лучшем случае это сбивает с толку - person Sergio Tulentsev; 29.01.2021
comment
как насчет input.tr("\uFF08\uFF09", '()') тогда? - person Stefan; 29.01.2021
comment
@Stefan: да, мне больше нравится этот! - person Sergio Tulentsev; 29.01.2021
comment
Проблема решена. - person vvp.rb; 29.01.2021
comment
Следующее может помочь читателям понять: s = "かいしゃ(会社)", s.encoding #=> #<Encoding:UTF-8>, a = s.codepoints #=>[12363, 12356, 12375, 12419, 65288, 20250, 31038, 65289], a.map { |cp| [cp].pack('U*')} #=> ["か", "い", "し", "ゃ", "(", "会", "社", ")"]. - person Cary Swoveland; 30.01.2021