Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Перекодировать из cp1251 в utf8 (http://www.flasher.ru/forum/showthread.php?t=135646)

terbooter 28.01.2010 12:48

Перекодировать из cp1251 в utf8
 
Русский текст получаю от сервера крокозябрами
Цитата:

ФёдеС?РєР°
Как перегнать этот текст в utf8
Цитата:

Федёшка

proxiServer 28.01.2010 12:52

Загоняете в ByteArray.
Код AS3:

myBytesArray.readMultiByte(myBytesArray.length,"windows-1251");


terbooter 28.01.2010 13:23

Спасибо за наводку.
А как привильно записать?

Делаю так:
Код AS3:

var ba2:ByteArray = new ByteArray();
trace("raw string:", n);
ba2.writeUTF(n);
ba2.position = 0;
trace("decoded :",ba2.readMultiByte(ba2.length,"windows-1251"));

Цитата:

raw string: ФёдеС?РєР°
decoded :
Добавлено через 9 минут
Если делаю так

Код AS3:

var ba2:ByteArray = new ByteArray();
trace("raw string:", n);
ba2.writeUTFBytes(n);
ba2.position = 0;
trace("decoded :", ba2.readMultiByte(ba2.length, "windows-1251"));
ba2.position = 0;
trace("decoded2:",ba2.readMultiByte(ba2.length,"utf-8"));

то
Цитата:

raw string: С…Р№Сѓ
decoded : С…Р*в„–РЎС“
decoded2: С…Р№Сѓ
Добавлено через 19 минут
Латиница восстанавливается нормально
Цитата:

raw string: CoLD
decoded : CoLD
decoded2: CoLD

etc 28.01.2010 14:01

Вообще-то это нормальный utf-8, а не кракозябры. Подобный кривой вывод строки возможен только при использовании useCodepage.

terbooter 28.01.2010 14:16

Проблема начинается с кривой БД =)

В моем случае помог такой костыль
Код AS3:

public function decodeStringToUTF(s:String):String {
        var ba:ByteArray = new ByteArray();
        ba.writeMultiByte(s, "windows-1251");
        ba.position = 0;
        return ba.readMultiByte(ba.length, "utf-8");
}


etc 28.01.2010 18:02

Значит в БД оно дважды закодировано в utf-8. Вообще непонятно, нахрена ставить в клиент костыль, когда нужно править базу…


Часовой пояс GMT +4, время: 14:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.