#ruby #windows #encoding #internationalization
#ruby #Windows #кодирование #интернационализация
Вопрос:
Используя Ruby и Windows Vista, я иногда получаю то, что выглядит как китайское написание, особенно при записи в HTML-файлы. Кто-нибудь знает, что вызывает это? У кого-нибудь есть решение для этого?
Комментарии:
1. Похоже, проблема с кодировкой… у вас есть какие-нибудь образцы?
2. Нет, у меня нет никаких примеров, но это происходит с использованием различных режимов w w r r a ab и с использованием pos = and .insert вместе с некоторыми очень простыми записями файлов, взятыми из популярных книг по Ruby. Я не
3. Вы не сталкиваетесь с проблемой, с которой Bush скрыл факты в моджибаке, не так ли?
Ответ №1:
(Предполагается, что это файлы в формате UTF-8). В UTF-8 символ может занимать до 6 байт. Если вставка текста с использованием pos= нацелена на середину многобайтового символа, остальная часть документа будет мусором.
Если позиция, на которую вы нацеливаетесь, содержит байт, начинающийся с 10, вы находитесь в середине символа.
Комментарии:
1. Дополнение: Если это так, решением было бы переключиться на ruby 1.9 и использовать методы, основанные на символах, а не на байтах. Но поскольку OP не предоставляет, что нужно сделать, мы не можем предложить что-либо еще.
2. Это может быть ответом steenslag, но я также записывал в пустые файлы и получал мусор. A