Я новичок в использовании PHP в Windows Server 2008 с SQL Server. Когда я хочу опубликовать (или с помощью метода get) некоторые переменные, и я хочу их хранить в базе данных, он преобразует символы как пробел ->%20
и é
->%C3
, но я не хочу, чтобы система сохраняла %20
или %C3
, но фактический символ é
. Как я могу это сделать? Страница имеет кодирующий UTF-8 и сверка является Latin1_General_100_CS_ASСпециальные символы в php - SQL Server
ответ
Я собираюсь принять удар на ветру, но при выполнении получить данные формы кодируются в URL, и вы Получи это поведение. Использование метода post не обязательно должно кодировать значения формы для пробелов, но для специальных символов. Вот хорошая ссылка, чтобы посмотреть, http://webmonkeyuk.wordpress.com/2011/04/23/how-to-avoid-character-encoding-problems-in-php/.
http://php.net/manual/en/function.urldecode.php
Попробуйте urldecode
.
Это займет защищенные URL-адреса и преобразует их в фактические символы. См. the manual.
Обратите внимание на предупреждение в руководстве, что вам не нужно делать это с помощью переменных GET или POST. Они автоматически декодируются.
$my_var = $_GET['my_weird_character'];
$ my_var уже должен быть декодирован и готов для ввода в вашу БД. Вы уже пробовали? Прежде чем беспокоиться и задавать такие вопросы, почему бы не попробовать и посмотреть, работает ли это в первую очередь?