3

У меня есть ситуация, когда у меня есть Java-программа, которая сначала пишет текстовый файл, а затем вызывает «CMD /C CLIP <textfile», чтобы иметь возможность поместить произвольно большой файл в буфер обмена Windows. Работает хорошо.

Теперь я обнаружил, что существует проблема с кодировкой, поэтому я убедился, что у меня есть действительный файл в кодировке UTF-8 (включая BOM, и он корректно открывается в vim), но кажется, что CLIP.EXE не соблюдает спецификацию для изменения ожидаемое кодирование в UTF-8.

Итак, как мне сообщить Windows и / или CLIP.EXE, что этот файл имеет кодировку UTF-8, и обращаться с ним соответствующим образом? (Если бы другая кодировка, такая как UTF-16 или UTF-32 работала бы лучше для Unicode, я могу использовать это вместо этого).

Система, показывающая поведение, - это Windows 7, а кодовая страница по умолчанию в CMD.EXE - 850. Мне это нужно для работы в системах, которые я не контролирую.

1 ответ1

4

UTF-16 работает для меня на моей Windows 7 (моя кодовая страница OEM ('cmd') - 437, хотя это не должно иметь значения).

Как я тестировал:

  1. Откройте блокнот, введите текст, не относящийся к ASCII (или скопируйте с какого-либо сайта с большим количеством языков, например http://wikipedia.org
  2. Сохранить как, выберите Кодировка: Юникод (что означает UTF-16), сохраните как UTF16.txt
  3. В cmd введите clip < UTF16.txt
  4. Откройте новый блокнот, вставьте

Результат: текст отображается правильно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .