<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312678&amp;view=findpost&amp;p=2695956</guid>
        <pubDate>Mon, 13 Sep 2010 12:25:33 +0000</pubDate>
        <title>Кириллические имена файлов и Lazarus</title>
        <link>https://forum.sources.ru/index.php?showtopic=312678&amp;view=findpost&amp;p=2695956</link>
        <description><![CDATA[Romtek: По-моему, проблема сидит глубоко в RTL и связана с преобразованиями имён или даже типами вызова Ansi/Wide character. Я бы сказал, что это проблема чисто системной связки RTL FPC. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2010-09-13T16:33:07+04:00">13.09.10, 12:33</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312678&view=findpost&p=2693733'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>daesher &#064; <time class="tag-quote__quoted-time" datetime="2010-09-10T07:35:09+00:00">10.09.10, 07:35</time></span><div class='quote '>Либо создавать обходные варианты с принудительным преобразованием кода из UTF8 в CP1251.</div></div>Только UTF-8 в Windows не используется, если я не ошибаюсь. Используется UTF-16 (с двойным байтом на символ).<br>
<br>
Как только полностью перейдут на Wide character функции (Unicode), подобные проблемы отпадут.]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312678&amp;view=findpost&amp;p=2693733</guid>
        <pubDate>Fri, 10 Sep 2010 07:35:09 +0000</pubDate>
        <title>Кириллические имена файлов и Lazarus</title>
        <link>https://forum.sources.ru/index.php?showtopic=312678&amp;view=findpost&amp;p=2693733</link>
        <description><![CDATA[daesher: Очень похоже на то, что Win32-интерфейс Lazarus (по крайней мере, версии 0.9.28-2) использует ANSI-вариант функций WinAPI для работы с файлами. Надо смотреть текущую SVN-версию, исправлять её (если баг ещё есть), отсылать патч разработчикам (последнее как раз несложно). Либо создавать обходные варианты с принудительным преобразованием кода из UTF8 в CP1251.]]></description>
        <author>daesher</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312678&amp;view=findpost&amp;p=2690273</guid>
        <pubDate>Mon, 06 Sep 2010 22:29:50 +0000</pubDate>
        <title>Кириллические имена файлов и Lazarus</title>
        <link>https://forum.sources.ru/index.php?showtopic=312678&amp;view=findpost&amp;p=2690273</link>
        <description><![CDATA[volvo877: Привет всем.<br>
<br>
Итак, частично проблема описана в названии. А теперь - немного конкретики. Имеется: WinXP SP3 (неюникодный язык выставлен не в Cyrillic, а в Hebrew - это важно) и Lazarus 0.9.28.2<br>
<br>
При попытке выполнить<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp;if SaveDialog1.Execute then</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;ShowMessage(SaveDialog1.FileName);</div><div class="code_line">&nbsp;&nbsp; &nbsp;memo.SaveToFile(SaveDialog1.FileName);</div><div class="code_line">&nbsp;&nbsp;end;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
, где SaveDialog1.FileName содержит символы кириллицы, например, &#39;F:&#092;<span class="tag-color tag-color-named" data-value="red" style="color: red">тест</span>.txt&#39;, происходит сбой (см. аттач, нижняя часть картинки), хотя ShowMessage отображает правильный путь (см. аттач, верхняя часть). Да, я читал <a class='tag-url' href='http://www.freepascal.ru/forum/viewtopic.php?f=5&t=4069&start=0&st=0&sk=t&sd=a&sid=b25b8668d39a0f879bb07ce0ed7b9339' target='_blank'>обсуждение</a> на freepascal.ru, естественно, я пробовал и UTF8Decode и UTF8ToSys, но ни одно ни другое не приводит к работе SaveToFile, поскольку у меня системная кодировка <strong class='tag-b'>другая</strong>, в ней не отображаются кириллические символы. Файл с именем на английском (или иврите) прекрасно сохраняется безо всяких преобразований, вышеприведенным фрагментом кода.<br>
<br>
При этом, вот такой вызов WinAPI-шной функции:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if not CopyFileW(PWideChar(UTF8Decode(SrcName)),PWideChar(UTF8Decode(DstName)), False) then</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;// </div><div class="code_line">end;</div></ol></div></div></div></div><br>
копирует файлы с любыми именами, хоть русскими, хоть ивритскими, хоть арабскими.<br>
<br>
Внимание, вопрос: можно ли каким-либо образом заставить Лазарус понять, что имена файлов могут быть не на двух, а на гораздо бОльшем количестве языков (желательно не используя WinAPI)? Обходной путь - сохранить в файл с латинским именем, а потом переименовать его, как нужно - мне известен, хотелось бы без лишних телодвижений...<br>
<br>
<span class="b-attach" data-size="15414" data-hits="1065" data-attach-id="1277" data-attach-post-id="2690273">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=2690273&amp;attach_id=1277' title='Скачать файл' target='_blank'>test.PNG</a> (, : 1065)
		</span>]]></description>
        <author>volvo877</author>
        <category>32-битные компиляторы</category>
      </item>
	
      </channel>
      </rss>
	