Unicode and PHP

demongloom

Новичок
Unicode and PHP

Вот везде пишут про уникод в ПХП, даже новость про то что пхп на 50% готов к уникоду.
Конечно хорошо что функции будут лучше работать с уникодом, но вот зачем нужен уникод в самом синтаксисе языка? То есть теоретически можно будет писать код:

PHP:
function скажи($слово) {

   echo $слово;

}

скажи("превед");
Вопрос лишь в том, нужно ли это? Быть может есть другие проекты не менее востребованные, скажем namespaces.
 

Popoff

popoff.donetsk.ua
demongloom
1. Та не можно будет писать. Так можно писать и сейчас. И всегда можно было.
2. Какое это имеет отношение к юникоду?
 

ast-ross

Новичок
кто подскажет как переходить на юникод (UTF-8), знаю что нужно заменить все строковые функции на аналоги mb и добавить ключ u в регулярных выражениях, а кроме строковых функций и регулярок что еще?
 

SiMM

Новичок
> Вопрос лишь в том, нужно ли это?
Не используй - никто не заставляет.

> а кроме строковых функций и регулярок что еще?
Нарвёшься - узнаешь. Есть как минимум BOM, который мешает выдаче заголовков.
 

ast-ross

Новичок
SIMM, это имееться ввиду:
Иногда вы проверили ВСЁ - нигде ничего нет. Смените редактор. Посмотрите свой файл в другой программе. К примеру, Windows Блокнот при использовании кодировки Unicode добавляет в начало вашего файла служебный символ Byte Order Mark, никак при этом не ставя вас в известность. Откройте скрипт в другом редакторе и удалите посторонние символы. И смените Блокнот на другой редактор.
-~{}~ 25.12.06 18:18:

Вот интересно среди mb функций нет аналога str_replace, однако она правильно работает с utf-8, как это понимать? Ведь strlen не работет коректно с utf-8, получаеться что str_replace читает посимвольно а strlen побайтно?
 

Wicked

Новичок
str_replace правильно работает с UTF-8, потому что в UTF-8 ни один символ не совпадает с частью другого. Поэтому, когда ты делаешь replace вылидной UTF-8 строки на валидную UTF-8 строку в валидной UTF-8 строке, ты не можешь испортить результат, и получишь на выходе тоже валидную UTF-8 строку. Даже несмотря на то, что str_replace работает с байтами.
 

ast-ross

Новичок
ааа, точно... Туплю...

Ну есть еще идеи где споткнусь с utf-8, или достаточно mbstring-а?
 

ast-ross

Новичок
Не понял вопроса... UTF-8 кодировка юникода, перевожу один существующий проект на гос. язык...
 

demongloom

Новичок
Хорошо, уточню вопрос. Зачем нужно чтоб в синтаксисе языка была поддержка не латинских названий в именах классов, функций имен переменных и т.д?
 

ast-ross

Новичок
Автор оригинала: demongloom
Хорошо, уточню вопрос. Зачем нужно чтоб в синтаксисе языка была поддержка не латинских названий в именах классов, функций имен переменных и т.д?
А синтаксис тут не при чем, просто проект написан в виде "спагетти", так что придеться или выносить все не латинские символы в отдельный языковой файл либо перегнать исходники в UTF-8 (это проще). Да и вопрос стоит о функциях PHP нацеленных на юникод и проблемы при переводе проекта на него...
 
Сверху