问题描述:

I have a PHP script that calls a python script with arguments, and returns several string with print from python.

If python returns unicode characters, they won't show up properly in the browser.

If PHP sends unicode characters to python through arguments, it breaks.

Python code:

# -*- coding: UTF8 -*-

from lxml import html

hparser = html.HTMLParser(encoding="utf-8")

tree = html.parse(url, hparser)

## stuff here..

a = a_el.text.encode("utf-8")

b = b_el.text.encode("utf-8")

print [a, b]

PHP code:

header("Content-type: text/html; charset=UTF-8");

exec('python script.py "unicode æøå"', $input_ar);

foreach ($input_ar as $value) {

preg_match_all("/'([^']+)'/", $value, $value_ar);

//A

$a = $value_ar[1][0];

//B

$b = $value_ar[1][1];

echo $a."<br>";

echo $b."<br>";

}

The output in the browser either gives me \xc3\c85 something or a question mark in a black diamond shape.

I've tried using utf8_encode($string), but it didn't work.

I've also done a little research without luck.

I want to be able to send/recieve unicode characters from PHP to python.

相关阅读:
Top