27.07.2013, 22:05
|
Аспирант
|
|
Регистрация: 29.05.2013
Сообщений: 61
|
|
Изменить кодировку строки
От гугла приходит ответ на мой http запрос, этот ответ типа string и содержит русские буквы, но они выводятся вопросиками. Как их в utf-8 перекодировать? <meta charser='utf8'> есть
|
|
27.07.2013, 22:34
|
Аспирант
|
|
Регистрация: 29.05.2013
Сообщений: 61
|
|
А при попытке сохранить ответ в файл, там вместо русских букв лишь "эээээ". Забавно, но всё же надеюсь на вашу помощь.
|
|
27.07.2013, 22:34
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Romaboy,
1. Инет страница с образцом - есть ?
2. Какую кодировку получаете от гугла ?
3. Гугл отдает через Ваш сервер или через своё АPI сразу на клиента ?
или... ?
поскольку странно - ибо гугл обычно в UTF8 и отдаёт
|
|
27.07.2013, 22:52
|
Аспирант
|
|
Регистрация: 29.05.2013
Сообщений: 61
|
|
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 запрос. Понятия не имею, какая кодировка у вопросиков.
|
|
27.07.2013, 22:54
|
Аспирант
|
|
Регистрация: 29.05.2013
Сообщений: 61
|
|
Нет, транслейт тут ни при чем: если браузер эту ссылку откроет, то сохранится файл с корректными буквами, нужно с нодом разбираться.
|
|
27.07.2013, 22:59
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Romaboy,
я думаю текущая страница с http.request(options, callback) не в UTF8
Проще в чистом фрейме создать новый документ с нужной кодировкой и запрос сделать там и вернуть на top.document
|
|
27.07.2013, 23:13
|
Аспирант
|
|
Регистрация: 29.05.2013
Сообщений: 61
|
|
Как у текущей страницы кодировку изменить? Зачем новые документы создавать, нельзя существующий перекодировать?
|
|
27.07.2013, 23:20
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
Romaboy,
к вам приходит обьект а вы его как текст читаите
|
|
27.07.2013, 23:30
|
Аспирант
|
|
Регистрация: 29.05.2013
Сообщений: 61
|
|
Действительно, чанк это buffer.
str = chunk.toString('utf8', 0, chunk.length)
Перевожу буффер в строку с кодировкой utf8 - всё равно вопросики, что же делать?
|
|
27.07.2013, 23:43
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
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}'
|
|
|
|