Почему этот плагин не декодирует $ final?

это плагин, который я использую:

add_shortcode( '3', 'execute_python_with_argv3' );

function execute_python_with_argv3() {
$description = array (
array("pipe", "r"),  // stdin
array("pipe", "w"),  // stdout
);

$application_system = "python ";
$application_path .= plugin_dir_path( __FILE__ );
$application_name .= "3.py";
$separator = " ";
$application =     $application_system.$application_path.$application_name.$separator;
$pipes = array();
$proc = proc_open ($application, $description, $pipes);

if (is_resource ( $proc )) {
$response = stream_get_contents ($pipes [1] ); //Reading stdout buffer
}

$final = substr(str_replace("'", "", $response), 1);

echo $final;
echo iconv('UTF-8', 'UTF-8', $final);
}

$response равно b'\xc4\x8d\xc4\x99\xc4\x97\xc4\x8d\xc4\x8d\xc4\xaf\xc4\x85' а также $final эквивалентен \xc4\x8d\xc4\x99\xc4\x97\xc4\x8d\xc4\x8d\xc4\xaf\xc4\x85 и со всем этим echo iconv('UTF-8','UTF-8',$final); следует расшифровать и распечатать čęėččįą, Но он не декодирует, а только печатает $finalСтрока, но если я вставлю строку $final печатает на iconvСтроковое место, оно прекрасно декодирует. Почему это происходит? Как это исправить? Благодарю.

Это скрипт Python, который я использую:

# -*- coding: utf-8 -*-
line="čęėččįą";
enc=line.encode('utf-8')
print (enc);

1

Решение

Вам нужно установить кодировку среды по умолчанию utf-8,
Один из способов сделать это:

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

line = "čęėččįą"enc = line.encode('utf-8')
print (enc)
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]