purebasic.info

PureBasic forum
Текущее время: Ср окт 24, 2018 3:58 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: ANSI to UTF8, UTF8 to ANSI
СообщениеДобавлено: Пт авг 31, 2012 10:44 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн апр 27, 2009 5:18 pm
Сообщений: 387
Откуда: Череповец, Вологодская область
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Портировано с PHP.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Procedure$ UtfToAnsi(String$)
        Protected x.l
       
        For x = 128 To 143
                String$ = ReplaceString(String$, Chr(209) + Chr(x), Chr(x + 112))
        Next
       
        For x = 144 To 191
                String$ = ReplaceString(String$, Chr(208) + Chr(x), Chr(x + 48))
        Next
       
        String$ = ReplaceString(String$, Chr(208) + Chr(129), Chr(168))
       
        String$ = ReplaceString(String$, Chr(209) + Chr(145), Chr(184))
       
        ProcedureReturn String$
EndProcedure
 
Procedure$ AnsiToUtf(String$)
        Protected x.l
       
        For x = 128 To 143
                String$ = ReplaceString(String$, Chr(x + 112), Chr(209) + Chr(x))
        Next
       
        For x = 144 To 191
                String$ = ReplaceString(String$, Chr(x + 48), Chr(208) + Chr(x))
        Next
       
        String$ = ReplaceString(String$, Chr(168), Chr(208) + Chr(129))
       
        String$ = ReplaceString(String$, Chr(184), Chr(209) + Chr(145))
       
        ProcedureReturn String$
EndProcedure


Код на PHP:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function Encode ( $str, $type )
{ // $type: 'w' - encodes from UTF to win 'u' - encodes from win to UTF
static $conv='';
if (!is_array ( $conv )){
$conv=array ();
for ( $x=128; $x <=143; $x++ ){
$conv['utf'][]=chr(209).chr($x);
$conv['win'][]=chr($x+112);
}
for ( $x=144; $x <=191; $x++ ){
$conv['utf'][]=chr(208).chr($x);
$conv['win'][]=chr($x+48);
}
$conv['utf'][]=chr(208).chr(129);
$conv['win'][]=chr(168);
$conv['utf'][]=chr(209).chr(145);
$conv['win'][]=chr(184);
}
if ( $type=='w' ) return str_replace ( $conv['utf'], $conv['win'], $str );
elseif ( $type=='u' ) return str_replace ( $conv['win'], $conv['utf'], $str );
else return $str;
}



Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB