2013-05-25 4 views
1

Когда я тестировал этот небольшой скрипт:Что такое (по умолчанию) кодировка для функции md5() в PHP?

$str = "apple"; 

echo md5($str); 

В результате согласованного результата делать md5 используя utf8 (тестировалось с помощью C#)

Должен ли я верить, что это всегда будет иметь место в любой другой среде?

Если я буду размещать этот скрипт на любом веб-хосте, окнах или Linux, будет ли он вести себя одинаково с кодировкой UTF8?

+0

Используя тот же вход, он всегда даст вам тот же результат, это то, что вы просите? – Maerlyn

+0

@Maerlyn Да, меня беспокоит, что на входе будет другая кодировка, основанная на среде, например, исходящая из переменной GET или предварительно обработанная веб-браузером или веб-сервером. – sharp12345

+0

Вам нужно убедиться, что он в той же кодировке. – Maerlyn

ответ

5

Кодирование строкового литерала - это любая кодировка, в которую вы сохранили исходный файл. Если вы сохранили этот файл php в UTF-16, вы получите другой результат, то есть, если код будет работать.

В PHP нет унифицированной или управляемой кодировки. Строки в PHP могут быть в любой кодировке, другими словами, они равны , эквивалентным байтовым массивам языков с более абстрактным строковым типом.

0

Просто md5() всегда будет иметь одинаковую кодировку. Если вы не можете доверять этому, просто вы можете кодировать данные в самой базе данных.

Смежные вопросы