У меня есть этот большой XML-файл. Есть поле, в котором я хочу разбить поле на пробел.
Поэтому я делаю следующее, чтобы сохранить разделенные данные в a & b:
components = a.split(' ')
a = components[0]
b = components[1]
Однако некоторые разделены правильно, а некоторые нет (когда все они содержат пробелы). Например, когда я пытаюсь разделить 'Maria Canada'
, он не разделяется на пробелы.
Я не уверен почему. Если я открою файл в Vim и скопирую этот неправильный текст, я могу правильно разделить их в интерактивной оболочке Ruby:
'Maria (Canada)'.split(' ')
=> ["Maria","(Canada)"]
UPDATE
Хорошо, причина в NBSP. Я распечатал те строки, которые не разбиваются в консоли из-за ошибок. Я скопировал текст и вставил в irb. Этот скопированный текст также нельзя разделить на irb, и я не могу удалить это пространство.
>> ' '.strip
=> " "
Затем я запустил ord
и обнаружил, что пробел является символом NBSP (его код 160):
>> ' '.ord
=> 160
Таким образом, XML-файл содержит пробел и символы NBSP. Я думаю, что Vim автоматически преобразует NBSP в пробелы, и поэтому, когда я пытался скопировать его из vim, это не NBSP больше.
Теперь мне просто нужно разобраться, как бороться с NBSP.