Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не распознаются русские буквы которые я получаю из API (https://javascript.ru/forum/misc/80964-ne-raspoznayutsya-russkie-bukvy-kotorye-ya-poluchayu-iz-api.html)

gotcadumitru 02.09.2020 21:55

Не распознаются русские буквы которые я получаю из API
 
Я нашел API для случайных шуток на русском языке: http://rzhunemogu.ru/RandJSON.aspx?CType=1
но когда я пробую его использовать то выдается ошибка :
SyntaxError: Unexpected token in JSON at position 54
И не только на этой позиции а на рандомной.
Вот мой код:
async function getJoke(){
    const proxyUrl = 'https://quiet-wildwood-41923.herokuapp.com/';
    const apiUrl = 'http://rzhunemogu.ru/RandJSON.aspx?CType=1';
    try{
        const respone = await fetch(proxyUrl + apiUrl);
        const jokeJson = await respone.json();
       console.log(jokeJson);

    }catch(error){
        console.log(error);
    }
}
getJoke();

Заранее спасибо.

gotcadumitru 02.09.2020 21:59

Иногда в консоли выдает выдает :
{content: "- �������, ������ � ��������� �������. ������� - ��������� �� ����� �� ����! "}

Aetae 02.09.2020 23:44

fetch срать хотел на эти наши кодировки, нацистская херовина.
Либо используй старый добрый xmlhttp, который смотрит на заголовок возвращаемый сервером и сам раскодирует как надо, либо декодируй win-1251 -> utf8 вручную, вместо использования .json().

laimas 03.09.2020 01:12

Кто и чем так извращенно json готовит, видимо самопальное производство, от того и бывает ошибка. JSON работает с UTF, если кодировщику на вход подать cp1251, то все что не английское не будет упаковано вообще.


Часовой пояс GMT +3, время: 07:41.