我想让PHP从python中打印出这些字符:ĄČĘĖĮŠŲŪŽąčęėįšųūž
。如果python程序输出中的文本具有这些字符之一,则输出为空(PHP不会回显任何内容),但是,此程序打印出包含ASCII字符的数据。如何对我的PHP插件进行编码以从python中回显UTF-8符号?
这是我的python脚本:
#!/home/meteo/.local/bin/python3
print("ĄČĘĖĮŠŲŪŽąčęėįšųūž")
这是我使用的PHP插件:
<?php # -*- coding: utf-8 -*-
/* Plugin Name: viassh */
header('Content-Type: text/html; charset=utf-8');
add_shortcode('viassh', 'HelloWorldShortcode');
function HelloWorldShortcode() {
ob_start();
$old_path = getcwd();
chdir('/home/meteo/public_html/wp-content/plugins/');
$output = shell_exec('./4230.py');
chdir($old_path);
echo $output;
$output = ob_get_clean();
return $output;
}
如果我在php插件中添加这样的行,它会得到回应:echo "ėčįęįšėįž";
。
我在我的Windows计算机上遇到了与此类似的问题,解决方案是使用以下命令查找python编码:
import sys
print(sys.stdout.encoding)
并将此行添加到我的php插件header('Content-Type: text/html; charset=utf-8');
charset值必须与python编码相同。所以我在我的VPS,python编辑器上尝试了这个(你用python3
开始的)ssh说编码是UTF-8,但是通过我的php插件运行的python程序说它的编码是{{ 1}},我试过用这些编码改变字符集值,但python数据仍然没有被打印出来,所以我没有想法。
带符号的程序也可以通过ssh运行,没有任何问题。
感谢阅读,我们将不胜感激。