[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод текста на изображение
Grey
Есть скрипт генерации изображения.
PHP
<?php
Header
("Content-type: image/jpeg");
$name = $_GET['name'];
$string = $name.'!';
$string2 = $name.'!';
$im= ImageCreateFromJPEG("1.jpg");
$LightGrey= ImageColorAllocate($im, 250, 0, 0);
$white= ImageColorAllocate($im, 203, 1, 1);
$font = imageloadfont('1.gdf');
ImageString($im, $font, 30, 120, $string, $LightGrey);
ImageString($im, $font, 30, 120, $string2, $white);
Imagejpeg($im);
ImageDestroy($im);

Переменная передается ссылкой вида
PHP
<a href="card.php?name='.$name.'" target="_blank">

Русские слова выводятся адекватно.

Но решил использовать это в другом проекте, с применением Javascript, тут текст передается через форму аякс-запросом методом get также как в вышеуказанной ссылке. Но почему-то возвращает кракозябру.
Скрипт ТОТ ЖЕ САМЫЙ, скопипастеный.
Все файлы - в utf-8.
В чем тут может быть проблема? почему, проходя через яву, кодировка кракозябрится?

Вывел отображение строки запроса для теста, в общем на сервер уходит строка вида (слово "Привет")
HTML
card.php?&name=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82

Все равно ничего не понял.



Спустя 22 минуты, 17 секунд (8.08.2009 - 17:29) glock18 написал(а):
Хтмл какая у тебя кодировка? видимо, не утф.

Браузер кодирует переменные запроса а утф8 перед передачей серверу. Та строку, что привел ты, и есть - преставление строки в утф8.

Если у тебя хтмл енкодин стоит утф8, то должно быть все ок. Если нет, то тебе нужно переводить из утф8 в твою кодировку (цп1251, возможно) параметры при получении на сервере, а вывод данных кодировать обратно - из цп1251 в утф8.

PS: еще объясни, каким образом тема топика связана с твоим вопросов?

Спустя 4 минуты, 28 секунд (8.08.2009 - 17:34) Grey написал(а):
Да в том-то и дело что везде utf-8
Сервер:
Цитата
Date: Sat, 08 Aug 2009 14:32:41 GMT
Server: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4
Accept-Ranges: bytes
Content-Length: 2530
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
200 OK

Страница с формами:
HTML
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Цитата
PS: еще объясни, каким образом тема топика связана с твоим вопросов?

Да вроде очевидно. Текст выводится кракозябрами на изображение. Причем пока нет явы - нормально, когда есть - ненормально.


Спасибо, все получилось. Нужно было в скрипте генерации перекодировать UTF-8 в Windows-1251
PHP
$name iconv('UTF-8''Windows-1251'$name);

Понять не понял, но получилось.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.