如何在PHP中设置正确的编码?

时间:2016-07-11 13:35:01

标签: php python encoding utf-8

我想让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运行,没有任何问题。

感谢阅读,我们将不胜感激。

0 个答案:

没有答案