Написание на китайском языке при записи в файлы?

#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