Mercurial клонирует русские символы, такие как '?'

Я работаю в Linux Red Hat 4.1.2-48 от PuTTy, где установлена ​​кодировка UTF-8 (PuTTy). Я установил mercurial 2.2.1 и его репозиторий. В файле hgrc кодировки репозитория установите UTF-8, например:

[web]
allow_push = *
push_ssl = false
encoding = UTF-8

[diff]
git = True
ignorews = True
ignorewsamount = True
ignoreblanklines = True

В репозитории есть файлы, имена которых в кодировке utf-8 и имеют русские символы. Когда я захожу в каталог репозиториев, я вижу правильные русские символы. В среде Linux переменная LANG=en_US.UTF-8..

Если я клонирую этот репозиторий на windows 7, у меня правильные русские символы и все нормально. Но если я клонирую на этот линукс, все русские символы становятся '?' персонаж. Когда я выполняю команду file -bi , она говорит, что это utf8.

Кто-нибудь может помочь решить эту проблему, чтобы русские символы были русскими или сказать направление проблемы?


person San4o    schedule 13.06.2013    source источник
comment
если он работает в Windows 7 и не работает в Linux, то это звучит как проблема с кодировкой имени файла — разные платформы используют разные кодировки для имен файлов. есть расширение - mercurial.selenic.com/wiki/FixUtf8Extension, которое должно помочь в этой ситуации   -  person Petesh    schedule 13.06.2013
comment
Спасибо, но я не понимаю. Это расширение исправляет проблемы с кодировкой имени файла в Windows, но в Windows все нормально. Проблема в Linux, а точнее в операции клонирования mercurial или конфигурации mercurail. Я так думаю, потому что в винде все нормально, а в линуксе проблема.   -  person San4o    schedule 13.06.2013
comment
Убедитесь, что ваш терминал действительно может отображать нелатинские символы: echo -e \xE2\x98\xA0 - если он отображает ??? тогда это просто проблема с вашим терминалом.   -  person Tom    schedule 14.06.2013
comment
я решил это. При тестировании я обнаружил, что если я устанавливаю переменную среды LANG в en_US.cp1251, операция клонирования дает файлы с правильными русскими символами. Мне это нужно, потому что Team City не может копировать файлы с именами типа «??..». Поэтому я установил параметр сборки LANG=en_US.cp1251, и он заработал.   -  person San4o    schedule 15.06.2013


Ответы (1)


Проблема с набором символов между Windows и Linux, я столкнулся с аналогичной проблемой. у меня в линуксе все ок, а в винде не ок. CharacterEncodingOnWindows имеет представление об этой проблеме.

person Ashburn RK    schedule 14.09.2015
comment
Вам нужно вставить соответствующий контент статьи, на которую вы ссылаетесь, в stackoverflow. - person QuantumLicht; 14.09.2015