View Issue Details

IDProjectCategoryView StatusLast Update
0002866Far ManagerRegExppublic2023-02-21 23:16
Reportershmuel Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Platformx86OSWindowsOS VersionXP SP3
Product Version3.0 
Summary0002866: Неправильная работа с юникодными символами длиной более 2 байтов
DescriptionФайл состоит из одного юникодного символа "pile of poo"
(http://www.fileformat.info/info/unicode/char/1f4a9/index.htm).
В кодировке UTF-8 это будет 4 байта: F0 9F 92 A9.
Steps To Reproduce1. Создадим файл:
  lua:f=io.open("poo.txt","wb") f:write"\xF0\x9F\x92\xA9" f:close()

2. Делаем в редакторе замену по CtrlF7 с регулярными выражениями: заменяем "." на "$0-".

Ожидаемый результат: F0 9F 92 A9 2D
Полученный результат: ED A0 BD 2D ED B2 A9 2D (после двух замен)
Additional Information- Плагин RESearch выполняет замену правильно.
- Плагин LF Search выполняет замену правильно при использовании Oniguruma или PCRE.
- Плагин LF Search выполняет замену неправильно при использовании Far regexp.

То, что кодировка UTF-8, не принципиально. Подобные же результаты и в UTF-16 LE.

<лирика> Выбор данного конкретного символа для иллюстрации эффекта объясняется лишь тем, что эффект у меня впервые проявился именно с этим символом, в файле Addons\Macros\Edit.OpenURL.lua </лирика>
TagsNo tags attached.
Build

Activities

2useven10

2014-11-22 12:31

developer   bugnote:0013273

Фар вообще не умеет работать с такими символами.
В редакторе, например, будет показано 2 символа вместо одного (оба [?]).
Поддерживается реально только UCS2, а не Unicode.

DrKnS

2014-11-22 12:32

administrator   bugnote:0013274

http://forum.farmanager.com/viewtopic.php?p=116295#p116295

shmuel

2014-11-22 12:33

developer   bugnote:0013275

Почему же RESearch и LF Search, в том же Фаре, умеют работать с такими символами?

shmuel

2023-02-21 23:16

developer   bugnote:0017391

Интересно, что far2l (его нативная замена в редакторе) работает правильно.
Возможно это связано с тем, что в Линуксе sizeof(wchar_t) = 4

Issue History

Date Modified Username Field Change
2014-11-22 11:33 shmuel New Issue
2014-11-22 11:51 shmuel Steps to Reproduce Updated
2014-11-22 11:53 shmuel Steps to Reproduce Updated
2014-11-22 12:31 2useven10 Note Added: 0013273
2014-11-22 12:32 DrKnS Note Added: 0013274
2014-11-22 12:33 shmuel Note Added: 0013275
2014-11-22 13:54 shmuel Additional Information Updated
2023-02-21 23:16 shmuel Note Added: 0017391