Изменить кодировку строки
От гугла приходит ответ на мой http запрос, этот ответ типа string и содержит русские буквы, но они выводятся вопросиками. Как их в utf-8 перекодировать? <meta charser='utf8'> есть
|
А при попытке сохранить ответ в файл, там вместо русских букв лишь "эээээ". Забавно, но всё же надеюсь на вашу помощь.
|
Romaboy,
1. Инет страница с образцом - есть ? 2. Какую кодировку получаете от гугла ? 3. Гугл отдает через Ваш сервер или через своё АPI сразу на клиента ? или... ? поскольку странно - ибо гугл обычно в UTF8 и отдаёт |
var options = { host: 'translate.google.ru', path: '/translate_a/t?client=x&text=koko&sl=en&tl=ru }; callback = function(response) { var str = ''; response.on('data', function (chunk) { // Сдесь в chunk принимается ответ в непонятной кодировке str += chunk; }); response.on('end', function () { alert(str) }); } http.request(options, callback).end(); Знаю, что для node есть раздел, но я думал можно стандартным js перекодировать. Гугл отдаёт через http запрос. Понятия не имею, какая кодировка у вопросиков. |
Нет, транслейт тут ни при чем: если браузер эту ссылку откроет, то сохранится файл с корректными буквами, нужно с нодом разбираться.
|
Romaboy,
я думаю текущая страница с http.request(options, callback) не в UTF8 Проще в чистом фрейме создать новый документ с нужной кодировкой и запрос сделать там и вернуть на top.document |
Как у текущей страницы кодировку изменить? Зачем новые документы создавать, нельзя существующий перекодировать?
|
Romaboy,
к вам приходит обьект а вы его как текст читаите |
Действительно, чанк это buffer.
str = chunk.toString('utf8', 0, chunk.length) Перевожу буффер в строку с кодировкой utf8 - всё равно вопросики, что же делать? |
Romaboy,
var obj = {"sentences":[{"trans":"Коко","orig":"koko","translit":"Koko","src_translit":""}],"src":"en","server_time":26}; //это вы получаите var text = '{"sentences":[{"trans":"РљРѕРєРѕ","orig":"koko","translit":"Koko","src_translit":""}],"src":"en","server_time":26}' |
Часовой пояс GMT +3, время: 05:21. |