json — PHP / Python json_decode не отображает специальные символы, такие как €

Я получил JSON, который генерируется в программе Python и выглядит следующим образом:

{"0": {"ausschreiber": "Beispiel; Zeitarbeit GmbH", "beschreibung": "\r\nF\u00fcr unseren Kunden suchen wir motivierte studentische Aushilfen auf flexibler Stundenbasis (450\u0080-Basis)", "datum": "17.11.2016", "name": "Studentische Hilfskr\u00e4fte gesucht", "email": "info@hindi.de"}}

Теперь я декодирую JSON в моей программе PHP, чтобы получить ассоциативный массив и отобразить его на веб-сайте.
Проблема в том, что специальные символы, такие как символ €, не отображаются, а отображаются специальные символы, такие как ö ä ü.
Вот программа php:

<?php
header('Content-Type: text/html; charset=utf-8');

function compare($old_data, $new_data){
$old_result = json_decode($old_data, true);
$new_result = json_decode($new_data, true);
echo $new_result[0]['beschreibung'];
}

function go4it(){
$db_data=json_content(); //creates the json from the Database
$crawler_data = file_get_contents('http://localhost/phppath/python_program.cgi'); //calls the cgi which returns the json
compare($db_data, $crawler_data);
}
go4it();

Что я попробовал:

  • установите заголовок в utf-8
  • $new_result = json_decode(utf8_encode($new data), true);
  • iconv_set_encoding("internal_encoding", "UTF-8");
  • iconv_set_encoding("input_encoding", "UTF-8");
  • iconv_set_encoding("output_encoding", "UTF-8");

Спасибо за вашу помощь!

РЕДАКТИРОВАТЬ 1
так что, похоже, проблема находится в программе python, благодаря @FranzGleichmann. Я думаю, что проблема с кодировкой страницы, откуда я получаю контент. На странице написано, что это ISO-8859-1, поэтому я попробовал это:

url = 'https://www.example.com'
source_code = requests.get(url)
plain_text = source_code.text
plain_text.decode('iso-8859-1', 'ignore').encode('utf8', 'ignore')
print(plain_text.encoding)

но потом я получаю сообщение об ошибке: «UnicodeEncodeError: кодек« ascii »не может кодировать символ u ‘\ xf6’ в позиции 8496: порядковый номер не в диапазоне (128)»

0

Решение

это была проблема со скриптом Python

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector