无法在俄语Windows 10上为控制台进程的输出文本缓冲区设置正确的编码,请提供帮助。需要将控制台输出转换为UTF-8编码并在浏览器中输出。
我尝试了不同的编码:
但没有运气:(
仅输出英文字符和数字。 没有俄语符号
<?php
header('Content-Type: text/html; charset=utf-8');
$cmd = "ping mail.ru";
execAndOutput($cmd);
function execAndOutput($cmd){
$process = popen($cmd, 'r');
while($out = fgets($process, 2048)) {
$out = mb_convert_encoding($out, "utf-8", "windows-1251");
echo $out."<br>\n";
ob_flush();flush();
}
pclose($process);
} ?>
使用编码1251,我已经在输出中得到了
ЋЎ¬Ґ Ї ЄҐв ¬Ё б mail.ru [94.100.180.202] б 32 Ў ©в ¬Ё ¤ ле:
ЋвўҐв ®в 94.100.180.202: зЁб«® Ў ©в=32 ўаҐ¬п=118¬б TTL=49
ЋвўҐв ®в 94.100.180.202: зЁб«® Ў ©в=32 ўаҐ¬п=118¬б TTL=49
‘в вЁбвЁЄ Ping ¤«п 94.100.180.202:
Џ ЄҐв®ў: ®вЇа ў«Ґ® = 4, Ї®«г祮 = 4, Ї®вҐап® = 0
(0% Ї®вҐам)
ЏаЁЎ«Ё§ЁвҐ«м®Ґ ўаҐ¬п ЇаЁҐ¬ -ЇҐаҐ¤ зЁ ў ¬б:
ЊЁЁ¬ «м®Ґ = 118¬бҐЄ, Њ ЄбЁ¬ «м®Ґ = 120 ¬бҐЄ, ‘।ҐҐ = 118 ¬бҐЄ
我没有进行任何编码转换:
����� ����⠬� � mail.ru [94.100.180.200] � 32 ���⠬� ������:
�⢥� �� 94.100.180.200: � ����=32 �६�=113�� TTL=46
�⢥� �� 94.100.180.200: � ����=32 �६�=170�� TTL=46
����⨪� Ping ��� 94.100.180.200:
����⮢: ��ࠢ���� = 4, ����祭� = 4, ����ﭮ = 0
(0% �����)
�ਡ����⥫쭮� �६� �ਥ��-��।�� � ��:
�������쭮� = 109�ᥪ, ���ᨬ��쭮� = 170 �ᥪ, �।��� = 135 �ᥪ
预期(从Windows终端复制):
Обмен пакетами с 127.0.0.1 по с 32 байтами данных:
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
Статистика Ping для 127.0.0.1:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек
我想从浏览器的控制台中获取俄语符号。
答案 0 :(得分:0)
您可以使用<flow name="onNewFile">
<file:listener config-ref="file" directory="test-data/in" autoDelete="true">
<scheduling-strategy>
<fixed-frequency frequency="1000"/>
</scheduling-strategy>
</file:listener>
...
</flow>
功能
iconv
您还可以像这样纠正您的编码
iconv('from_encoding', 'to_encoding',$str);
答案 1 :(得分:0)
我对此很满意。
在Windows控制台设置中,我发现当前编码为CP866,并将其添加到mb_encoding。
对于控制台中的俄语符号:
mb_convert_encoding($out, 'utf-8', 'cp866');
或
iconv('cp866', 'utf-8', $out);
检查您的控制台设置,以计算其使用的编码方式。
现在,所有作品都像一个沙姆。非常感谢您的帮助!