habrstranger
@habrstranger

Почему одинаковые символы имеют разный md5?

Приветствую, не получалось сравнить строки (одна с базы, другая с формы)
$var1 = "строка";
$var2 = "строка";
if (strcasecmp($var1, $var2) == 0) {

После психов, решил проверить их md5 и выяснилось у строк он разный. К примеру буква кириллицей "а" из базы и "а" из формы html имеют разный md5
а из базы  70e94e3ed0e945cd7eb522556da12d5b
а из формы c15c49a8f55a3dd0da7c8eda0e7485f9

Ну что за магия и как теперь их сравнивать?
  • Вопрос задан
  • 930 просмотров
Решения вопроса 5
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
md5('а') в UTF-8 = 70E94E3ED0E945CD7EB522556DA12D5B
md5('а') в CP1251 = EC2D11028766E06AC33648E2F0A67320
md5('а') в CP866 = 9AF7C117D9DE9A06FBA7A5F1EA5FCC2D
md5('а') в KOI8-R = 194AB396EB68EBD68D476285B476ABDA
md5('a') english = 0CC175B9C0F1B6A831C399E269772661
Вот, смотрите сами...
Ответ написан
@FanatPHP
при всех непонятках с символами смотри их код. например через urlencode().
Это гораздо более осмысленно, чем делать мд5
Ответ написан
@bacon
Например, кириллица и латиница, или разные кодировки.
Ответ написан
hottabxp
@hottabxp
Эксперт по BeautifulSoup(но это не точно!)
Разные кодировки.
Ответ написан
xmoonlight
@xmoonlight Куратор тега PHP
https://sitecoder.blogspot.com
if($var1===$var2)..
Кодировка у строк, файла скрипта, кодировка страницы и кодировка базы - везде utf-8!
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Ddeeeennn
Как вариант.
В первой строке могут буквы русские быть, а во второй английские и наоборот.
К примеру, "a" и "а" - не одно и тоже. В первом случае буква из русской раскладки, в втором - английская.
(Скопируй и загугли "привет" и "привeт")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы