<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
					xmlns:atom="http://www.w3.org/2005/Atom"
				  >
<channel>
<atom:link rel="self"  type="application/rss+xml"  href="http://rulinux.net/rss_from_sect_4_subsect_1_thread_33834"  />
<title>rulinux.net - Форум - General - А почему могут рваться пайпы, когда по ним шлют неюникодовые символы?</title>
<link>http://rulinux.net/</link>
<description><![CDATA[Портал о GNU/Linux и не только]]></description>
<image><title>rulinux.net - Форум - General - А почему могут рваться пайпы, когда по ним шлют неюникодовые символы?</title>
<link>http://rulinux.net/</link>
<url>http://rulinux.net/rss_icon.png</url>
</image>
<item>
<title>Re: А почему могут рваться пайпы, когда по ним шлют неюникодовые символы?</title>
<link>https://rulinux.net/message.php?newsid=33834&amp;page=1#96970</link>
<guid>https://rulinux.net/message.php?newsid=33834&amp;page=1#96970</guid>
<pubDate>Wed, 13 Jul 2011 18:57:01 +0400</pubDate>
<description><![CDATA[<p>А если почитать stderr, что получится?</p><p>И да, анонимус выше абсолютно прав.</p>]]></description>
</item>
<item>
<title>Re: А почему могут рваться пайпы, когда по ним шлют неюникодовые символы?</title>
<link>https://rulinux.net/message.php?newsid=33834&amp;page=1#96969</link>
<guid>https://rulinux.net/message.php?newsid=33834&amp;page=1#96969</guid>
<pubDate>Thu, 30 Jun 2011 21:43:56 +0400</pubDate>
<description><![CDATA[<p><i>> Только вот не надо уходить от темы</i><br> Это делает не пайп, а iconv потому что не знает во что ему преобразовывать твои символы. Припиши в конец команды " -t UTF-8" и я уверен твоя жизнь сразу же улучшится в полтора раза.</p>]]></description>
</item>
<item>
<title>А почему могут рваться пайпы, когда по ним шлют неюникодовые символы?</title>
<link>https://rulinux.net/message.php?newsid=33834&amp;page=1#96968</link>
<guid>https://rulinux.net/message.php?newsid=33834&amp;page=1#96968</guid>
<pubDate>Thu, 30 Jun 2011 21:29:00 +0400</pubDate>
<description><![CDATA[<p>Для максимальной простоты приведу пример CGI приложения:</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#!/bin/bash<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;echo "200 OK"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;echo "Content-Type: text/plain; charset=UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;echo<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;echo<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;echo -e 'test\xC0\xC1\xC2' | iconv -f windows-1251<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;</ol></fieldset></p><p>Вместо iconv можно воткнуть sed 'y/\xC0\xC1\xC2/АБВ/', итог тот же. Так вот, если запусить пример из консоли как приложение, то получим итоговую строку testАБВ, как и ожидалось. Если же зайти по соотв. адресу через браузер (вебсервер никаких mod_ не содержит, тупо запускает CGI приложения через execl), то получим только test, а всё что написано дальше - не приходит, причём, в логах веб-сервера увидим что не приходит, т.к. само приложение дальше ничего и не говорило. Если вместо пайпов использовать временные файлы - всё работает. Если перенаправить вывод iconv в файл - увидим что при запуске через веб-сервер в файле только test и написано, а при запуске из терминала - вся строка.</p><p> which показывает что бинарники берутся одни и те же. Из подозрительного пока что вижу только различия в $TERM (xterm и dumb соотв., правда, export TERM="xterm" дело не меняет) и locale: соотв.</p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LANG=ru_RU.UTF-8<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LANGUAGE=<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_CTYPE="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_NUMERIC="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_TIME="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_COLLATE="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_MONETARY="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_MESSAGES="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_PAPER="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_NAME="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_ADDRESS="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_TELEPHONE="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_MEASUREMENT="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_IDENTIFICATION="ru_RU.UTF-8"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_ALL=<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;</ol></fieldset> и <fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LANG=<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LANGUAGE=<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_CTYPE="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_NUMERIC="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_TIME="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_COLLATE="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_MONETARY="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_MESSAGES="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_PAPER="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_NAME="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_ADDRESS="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_TELEPHONE="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_MEASUREMENT="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_IDENTIFICATION="POSIX"<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;LC_ALL=<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;</ol></fieldset></p><p> Только вот не надо уходить от темы, говоря типа "сколько ненужностей itt", не о том речь сейчас, так что если нечего сказать - лучше пропустите. Гуглить не пробовал, ибо пока не совсем понятно даже какие слова подобрать. В общем, вопрос почему в первых условиях всё работает как задумано, а во вторых - ломается, причём, ломается только `|', а `>' и `</p>]]></description>
</item>
</channel>
</rss>