Тема: utf-8 -> win-1251
Показать сообщение отдельно
Старый 21.09.2010, 02:25   #13
Trazzy
Разработчик
 
Аватар для Trazzy
 
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений
(для 225 пользователей)
Ответ: utf-8 -> win-1251

Сходил на перекур, попробовал сделать так:

program sendtosite
uses proweb
var 
  
fldindniinteger
  
btnclickedcommand
  
bazaalfmessage_mchaready_mstring;
  
rus_alfrus_mess: array[0..400of string;
  
continboolean;

procedure Initial//инициализация (нужна для функции encod)
begin
baza 
:= '%D0%B0%D0%B1%D0%B2%D0%B3%D0%B4%D0%B5%D1%91%D0%B6%D0%B7%D0%B8%D0%B9%D0%BA%D0%BB%D0%BC%D0%BD%D0%BE%D0%BF%D1%80%D1%81%D1%82%D1%83%D1%84%D1%85%D1%86%D1%87%D1%88%D1%89%D1%8A%D1%8B%D1%8C%D1%8D%D1%8E%D1%8F%D0%90%D0%91%D0%92%D0%93%D0%94%D0%95%D0%81%D0%96%D0%97%D0%98%D0%99%D0%9A%D0%9B%D0%9C%D0%9D%D0%9E%D0%9F%D0%A0%D0%A1%D0%A2%D0%A3%D0%A4%D0%A5%D0%A6%D0%A7%D0%A8%D0%A9%D0%AA%D0%AB%D0%AC%D0%AD%D0%AE%D0%AF';
alf  := 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
n:=0;
for 
:= 0 to 65 do
  
begin
    rus_alf
[i] := getchar(alfi);
    
rus_mess[i] := copy(bazann+6);
    
n:= n+6;
  
end;
end;

function 
encod(messstring): string//этим мы перекодируем строку
begin
message_m
:='';
for 
:= 0 to length(mess)-do
    
begin
    contin
:=false;
      for 
n:=0 to 65 do
      
begin
      cha
:=getchar(mess,i);
      if 
contin=false then
        begin
        
if cha rus_alf[nthen 
            begin
            message_m 
:= message_m rus_mess[n] ;
            
contin:=true;
            
end;
            else 
contin:=false;
        
end;
      
end;
      if 
contin=false then message_m:=message_m+cha;
    
end;
encod:=message_m;
end;

begin //код программы
  
Initial;
  
ClearForm
  
ShowForm
  
SetFormTitle('Отправка'); 
  
fld:=formAddTextField('Текст:'''100TF_ANY); 
  
btn:=CreateCommand('OK'CM_SCREEN1); 
  
AddCommand(btn); 
  
repeat 
   clicked 
:= GetClickedCommand
  
until clicked <> EmptyCommand;
  
ready_m:=encod(FormGetText(fld)); //перекодировали то, что ввели с формы
  
q_property('Accept''*/*'); 
  
q_property('Content-Type''application/x-www-form-urlencoded'); 
  
q_property('User-Agent''myprog'); 
  
ind:=q_request('http://localhost/index.php'POST'go='+ready_m'none'); //и отправили
end
на localhost'е такой код:

<?php

//это содержание файла index.php (UTF-8)
//(в ".htaccess" стоит "AddDefaultCharset utf-8")

$getp=$_POST['go'];

$gets=@file_get_contents('br.dat');
$gets=$getp."\n".$gets;

$sava=fopen('test.dat''w');
fputs($sava$gets);
fclose($sava);

?>
Результаты:
localhost - принял, создался файл "test.dat" (ANSI-кирилица) с введенной строкой..
сторонний сайт - отказался!!

Upd: не знаю что и делать
__________________
Уважай собеседника, а лучше подари ему +

Последний раз редактировалось Trazzy, 22.09.2010 в 04:48.
(Offline)
 
Ответить с цитированием