1

Тема: Проблеми з кодуванням

Доброго дня.
Зовсім недавно почав вивчати php. На даний час вивчаю функції для обробки текстових рядків.
Є така функція:

strtr()

Привожу для прикладу частину коду:

<?php
    $str = "Hello, world!";
    $strr = strtr ($str, "o", "i");
        echo $strr;    
?>

Отримаємо те що і має бути:

Helli, wirld!

Але якщо використати українське слово, то проблема з кодуванням:

<?php
    $str = "Привіт, світ!";
    $strr = strtr ($str, "і", "о");
        echo $strr;
    
?>

отримуємо:

ПЀивоЂ, ЁвоЂ!

Кодування в utf-8.

В чому біда? І як обійти дану проблему?

2

Re: Проблеми з кодуванням

З готових рішень.

function mb_strtr($str, $from, $to)
{
  return str_replace(mb_str_split($from), mb_str_split($to), $str);
}

function mb_str_split($str) {
    return preg_split('~~u', $str, null, PREG_SPLIT_NO_EMPTY);;

}


    $str = "Привіт, світ!";
    $strr = mb_strtr($str, "і", "о");
        echo $strr;

3

Re: Проблеми з кодуванням

Буду вдячний, якщо по рядках розпишете пояснення.
Звісно в подальшому буду вивчати що до чого, але для поверхневого розуміння поки не завадить.
Дякую!

4

Re: Проблеми з кодуванням

http://stackoverflow.com/questions/2758 … r-mb-strtr

5

Re: Проблеми з кодуванням

Почистив від оффтопу.
Ще раз будуть намагання розвести мовний холівар - відправлю в бан.