Перейти к содержимому


Фотография

Кодировка интерфейса.


  • Пожалуйста, авторизуйтесь для ответа.
2 ответов в данной теме

#1 Новичок maloii (WMID 255724450148 )

  • Группа: Пользователи
  • сообщений 2
  • Регистрация: 17-января 07
  • МестоположениеРоссия
  • Webmoney BL

Отправлено 17 января 2007 - 18:35

Существуют ли какиенибуть настройки кодировки интерфейса WebMoney Transfer. Мой сайт работает на UTF-8 и когда я передаю русский текст в поле LMI_PAYMENT_DESC то в интерфейсе отображаются кракозябры. Может это можно какни-будь решить помимо того что переводить сайт на window-1251?
    • 0
  • Наверх

#2 Новичок WMZ-Random (WMID 443526791648 )

  • Группа: Пользователи
  • сообщений 1
  • Регистрация: 18-января 07
  • МестоположениеБеларусь
  • Webmoney BL

Отправлено 18 января 2007 - 06:43

Передавай текст  в поле LMI_PAYMENT_DESC в кодировке Windows-1251

...

Хотя это плохо когда сайт в UTF-8, как я так ужасно нелюблю эту кодировку.. Уж очень много с ней делов, особенно при работе с MySQL

    • 0
  • Наверх

#3 Пользователь obmenka.org (WMID 230705206808 )

  • Группа: Пользователи
  • сообщений 8
  • Регистрация: 05-октября 06
  • МестоположениеУкраина
  • Webmoney BL

Отправлено 20 января 2007 - 15:09

function utf2win1251 ($s) {
 $out = "";
 for ($i=0; $i<strlen($s); $i++)
 {
 $c1 = substr ($s, $i, 1);
 $byte1 = ord ($c1);
 if ($byte1>>5 == 6) // 110x xxxx, 110 prefix for 2 bytes unicode
 {
 $i++;
 $c2 = substr ($s, $i, 1);
 $byte2 = ord ($c2);
 $byte1 &= 31; // remove the 3 bit two bytes prefix
 $byte2 &= 63; // remove the 2 bit trailing byte prefix
 $byte2 |= (($byte1 & 3) << 6); // last 2 bits of c1 become first 2 of c2
 $byte1 >>= 2; // c1 shifts 2 to the right
 
 $word = ($byte1<<8) + $byte2;
 if ($word==1025) $out .= chr(168);                    // ?
 elseif ($word==1105) $out .= chr(184);                // ?
 elseif ($word>=0x0410 && $word<=0x044F) $out .= chr($word-848); // ?-? ?-?
 else
 {
 $a = dechex($byte1);
 $a = str_pad($a, 2, "0", STR_PAD_LEFT);
 $b = dechex($byte2);
 $b = str_pad($b, 2, "0", STR_PAD_LEFT);
 $out .= "&#x".$a.$b.";";
 }
 }
 else
 {
 $out .= $c1;
 }
 }
 
 return $out;
}
    • 0
  • Наверх