X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Кодировка в ПХП, Help me please >_<
KillingSpree
KillingSpree
Topic Starter сообщение 20.1.2011, 0:13; Ответить: KillingSpree
Сообщение #1


В общем, я относительно недавно стал изучать ПХП и столкнулся с этой проблемой кодировок.
Суть: Есть скрипт, он парсит кое-что и собирает в файлы .htm
Из этих .htm мне надо сгенерировать .xml
В парсеных файлах всё на русском и некоторые слова/предложения нужно перевести из русского в транслит. Для этого использую вот такую функцию:
CODE

function encodestring($st)
{
// Сначала заменяем "односимвольные" фонемы.

$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ ",

"abvgdeeziyklmnoprstufh'ie-");

$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ ",

"ABVGDEEZIYKLMNOPRSTUFH'IE-");

// Затем - "многосимвольные".

$st=strtr($st,

array(

"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",

"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",

"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",

"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",

"ї"=>"yi", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"

)

);

// Возвращаем результат.

return $st;

}


Даю этой функции строку типа "привет меня зовут Афанасий", а на выходе получаю что-то вроде "ePeleޥsmÂi ⁚eŭĭågeߥi".
Кодировка везде стоит UTF-8 (в денвере, редакторе и даже в header()).

Как это исправить, чтобы на выходе получать нормальный транслит?

Заранее огромное вам спасибо!


--------------------
Хочешь зарабатывать на своем сайте 5000$ в месяц? - Я тоже! )
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
CaHbka
CaHbka
сообщение 20.1.2011, 0:16; Ответить: CaHbka
Сообщение #2


В блокноте кодировку не пробовали поменять?

У меня стоит NotePad 2 и так есть такая штука File > Encoding > UTF 8

Была проблема с какими-то файлами на WP, пока не поменял кодировку в блокноте. Может и Вам поможет.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
KillingSpree
KillingSpree
Topic Starter сообщение 20.1.2011, 0:24; Ответить: KillingSpree
Сообщение #3


Менял, бесполезно. Я подозреваю что собака зарыта именно в этой функции и он просто не понимает в UTF этих русских символов, но понятия не имею как сделать по-другому, в общем-то по-этому и пишу сюда.


--------------------
Хочешь зарабатывать на своем сайте 5000$ в месяц? - Я тоже! )
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
proXBOCT
proXBOCT
сообщение 20.1.2011, 0:31; Ответить: proXBOCT
Сообщение #4


А если наоборот всё сделать в win-1251?

И надо проверить, действительно ли строка до кодирования верно отображается


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
KillingSpree
KillingSpree
Topic Starter сообщение 20.1.2011, 0:31; Ответить: KillingSpree
Сообщение #5


proXBOCT, на выходе надо получить UTF-8, да и автор курса по ПХП, который я проходил, всё твердил что UTF - the best и самая универсальная, вот и хочется к ней приспособится. Но в силу неопытности еще не "прохавал" все подводные камни.
Этим вариантом я воспользуюсь в самом крайнем случае, когда просто надоест искать выход из ситуации (ведь он есть).


--------------------
Хочешь зарабатывать на своем сайте 5000$ в месяц? - Я тоже! )
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 20.1.2011, 10:06; Ответить: Tollun
Сообщение #6


Скорее всего я не всё понял, но русские символы в транслит просто перевести
$name = "Привет";
$iso = array(
   "Є"=>"YE","І"=>"I","Ѓ"=>"G","і"=>"i","№"=>"n","є"=>"ye","ѓ"=>"g",
   "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
   "Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
   "З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
   "М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
   "С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"X",
   "Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
   "Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
   "а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
   "е"=>"e","ё"=>"yo","ж"=>"zh",
   "з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
   "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
   "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x",
   "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
   "ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
);
$tolat = strtr($name, $iso);

Когда-то позаимствовано у wp плагина Rus to Lat


А если тебе нужно кадировку перевернуть то iconv

Сообщение отредактировал Tollun - 20.1.2011, 10:07
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
On1x
On1x
сообщение 20.1.2011, 10:14; Ответить: On1x
Сообщение #7


Было такое. Как вариант - могу лишь посоветовать одно - данные которые собираешься переводить в транслит - предварительно пропустить через iconv("UTF-8//IGNORE","CP-1251//IGNORE",$str); Перевести в транслит - и обратно iconv("CP-1251//IGNORE","UTF-8//IGNORE",$str);


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MedveD5249
MedveD5249
сообщение 20.1.2011, 12:00; Ответить: MedveD5249
Сообщение #8


в вин-1251 попробуй


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dan1
dan1
сообщение 20.1.2011, 12:00; Ответить: dan1
Сообщение #9


Тоже склоняюсь к методу использования iconv()
Попробуйте ещё в .htaccess добавить запись:
AddDefaultCharset utf-8
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WebAction
WebAction
сообщение 20.1.2011, 12:02; Ответить: WebAction
Сообщение #10


win-1251 и все должно быть в шоколаде


--------------------
--тут может быть ваша реклама--
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется пхп программист на мелкие, периодические, задачи
Работаю только с пост.оплатой.
5 GigArt 1846 29.7.2020, 15:42
автор: GigArt
Открытая тема (нет новых ответов) Требуется пхп спец. Опенкарт
0 Mukis 1476 3.8.2017, 13:09
автор: Mukis
Открытая тема (нет новых ответов) Ищу опытного пхп програмера
доделать доску объявлений
0 sergeyich 1020 24.6.2016, 17:35
автор: sergeyich
Открытая тема (нет новых ответов) Кодировка
18 inoken 12858 27.3.2011, 19:29
автор: -alexdrob-
Открытая тема (нет новых ответов) требуется программист на пхп
2 DmitriyV 3807 15.10.2010, 0:43
автор: -RayOfLight-


 



RSS Текстовая версия Сейчас: 20.4.2024, 1:47
Дизайн