Хм, попробуйте очевидное:
line.start_with?("/\000*\000 ")
Нулевые байты, "\000"
, не имеют никакого визуального представления, поэтому вы не видите их, когда вы puts line
, но вы, вероятно,увидеть их, если вы передадите вывод скрипта через cat -v
:
/^@*^@ ^@T^@h^@i^@s^@ ^@i^@s^@ ^@a^@ ^@s^@t^@r^@i^@n^@g^@ ^@c^@o^@m^@m^@e^@n^@t^@ ^@*^@/^@^M^@
* ^@
- это то, как cat -v
представляет нулевой байт.
UPDATE: Если вы хотите удалить нулевые байты, используйте tr
или tr!
:
line.tr!("\000", '')
Я не уверен насчет формата .strings
файл, так что вы должны выяснить это и выяснить кодировку строки в частности.Похоже, это может быть UTF-16, а может и нет;если это стандартная кодировка, отличная от ASCII, то вы должны использовать iconv
для правильной сортировки кодировки.