проблема при переносе данных из Excel: перед вставкой в таблицу Address делаю проверку на дубли. проверка не возвращает результата. пробую вставить строку в таблицу и получаю ограничение уникальности - такая строка уже есть. Перехожу в SSMS, выполняю простой запрос Код (PHP): select top 100 * from ADDRESS where Town = 'Cанкт-Петербург' в этом запросе 'Санкт-Петербург' пишу руками и запрос возвращает результат. Меняю Санкт-Петербург на Санкт-Петербург, но взятый из дебаггера PHPStorm (выглядит точно так же). Запрос перестает возвращать данные. Каким образом заставить запрос работать с неправильной кодировкой? PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
соединение хорошо работает. данные я могу забрать и вывести, кракозябр нет. проблема возникает, когда забираю данные из xlsx-файлика через PHPExcel и пытаюсь проверить на уникальность. в файлике есть столбец Town. В нем значение 'Санкт-Петербург'. Я делаю запрос к БД, который написал выше. Запрос не возвращает результатов. Перехожу в SSMS и пишу точно такой же запрос руками - результаты есть. Пишу в php такой же запрос, только 'Санкт-Петербург' пишу статично, а не в качестве параметра - запрос возвращает результаты. Беру значение 'Санкт-Петербург' из Excel - нет результатов. Как убрать эту проблему с кодировкой?
А почему вы называете это "проблема с кодировкой"? Есть основания винить именно кодировку??? Может быть дело в каком-нибудь пробеле или где-то латинская буква Си вместо русской Эс? Сделайте пожалуйста var_dump($s) для слова, прочитанного из базы и для слова, прочитанного из Excel. И скопируйте сюда оба два варианта. Добавлено спустя 27 минут 42 секунды: Update: ну да, конечно в вашем примере Код (PHP): select top 100 * from ADDRESS where Town = 'Cанкт-Петербург' Санкт- начинается с латинской буквы. Может вы это и имели в виду, но как-то неочевидно для читателя ))) Я бы один раз сделал замену букв в базе чтобы потом с ней работать нормально. Код (PHP): UPDATE ADDRESS SET Town=REPLACE(Town, 'C', 'С') Иллюстрация: http://sqlfiddle.com/#!3/cb72d/1я создал базу с неправильным вариантом написания с латинской буквой - первый SELECT - ищу нормальное русское написание и не нахожу - делаю UPDATE с REPLACE чтобы исправить все латинские буквы Си на кириллическую Эс - второй SELECT - ищу нормальное русское написание и нахожу!