Вы все проделали такую удивительную работу, отвечая на вопрос, который я раньше думал - я спрошу этот вопрос, прежде чем углубиться в свое обращение, только чтобы узнать, что я сделал что-то не так.У меня только 3 страницы на сайте, который я делаю для себя.У него есть формы, sqli db.Мне сказали использовать UTF-8 (я частично сделал, но не полностью) LOL.Ок, звучит круто.Теперь, когда я хочу исправить это, чтобы быть на 100% знающим UTF-8, я уже написал около 1900 строк кода на PHP, JS и HTML без использования многобайтовых функций ... ТАК ... вот мой вопрос ... в моем преобразованииЯ сделал это ... (фрагменты кода из разных мест ...)
PHP
date_default_timezone_set('America/Toronto'); // sets the timezone to Eastern Stand Time
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
и т. Д.
SQL
(из интерфейса cpanel) Параметры сортировки соединения MySQL ": utf8_general_ci
БД SQL (все еще в режиме pre utf-8)
имя пользователя varchar (50) latin1_general_cs
название компании varchar (50) latin1_swedish_ci
имя_архива varchar (25) latin1_swedish_ci
У меня нет ЦЕННЫХ данных в таблицах. Я буду менять их на одно из следующих (однако я не уверен, какое именно) ...
utf8_general_ci или utf8_unicode_ci
ХотяЯ хотел бы сделать сайт доступным для иностранцев, но это не приоритет, НО, так как я делаю это в стиле UTF-8, это, вероятно,Блай уже собирается работать на иностранных языках.
Мои вопросы ...
1) Я установил свой часовой пояс, я не сделалустановить мой язык в php, потому что я никогда этого не делал.Мне нужно это сделать?Как это сделать для моего местоположения в Торонто / Канаде?
2) Достаточно ли хорошо настроить каждую страницу с помощью метатега, чтобы сделать всю страницу UTF-8
3) Использование метатега означает ли это, что все мои поля формы уже вводятся в виде данных UTF-8?Если нет, как я могу изменить его, чтобы они были.
4) Какой из них я использую для моей базы данных?utf8_general_ci или utf8_unicode_ci
5) НУЖНЫ определенные вещи, чтобы учитывать регистр символов.Я вижу только ci для utf8.Это потому, что «Dave» отличается от «dave», поэтому использование многобайтового сравнения автоматически сравнивает регистр ... ??!?!?!
6) В моей базе данных в данный момент сказано 50символы для хранения вещей ASCII - я предполагаю, что, переключившись на utf-8 в БД, что для англичан, таких как я, будет достаточно хранения 50 - но если какой-нибудь иностранец придет и введет кучу странных символов, мне нужно будетувеличить мое хранилище на х4, чтобы вместить все дополнительные байты для юникода?Я не против использования большего количества памяти, но мне любопытно, как правильно распределить это.И так как это VARCHAR (50), это действительно имеет значение?Если имя «Дейв», это будет 4 символа.Если бы это было какое-то иностранное имя, «Дейв» в символах мог бы быть 12 символов!лол.Итак, если я выделю, скажем, 100 в поле имени пользователя, которое следует сделать, поскольку маловероятно, что ВСЕ символы будут 4 байта.Или просто установите его на x4, что я бы сделал для английского языка, и сделайте их все VARCHARS для экономии места.Когда они вводят данные в форму, я буду использовать функции MB_LENGTH (я забыл точную функцию), поэтому я все еще смогу контролировать, сколько символов будет введено.
7) Как я могу проверить свой сайт Unicode?Я никогда не использовал ничего, кроме красивого английского :) LOL.Как я могу переключить свой браузер?чтобы притвориться, будто я откуда-то еще, ввести кучу кодов и посмотреть, работают ли мои функции, как только я переписываю их, чтобы использовать функции mb_ (multibyte).Или же нечего переключать ... Я просто набираю ALT 245 или еще что-то и получаю символы?!?!?Я не знаю, как ввести иностранные тестовые символы!Было бы плохо, если бы английский работал только для того, чтобы все иностранные клиенты не могли ввести пароль, потому что я недостаточно тестировал свой веб-сайт:)
8) Я знаю, как использовать определенные функции ctype, mb_ для обработки сравнений Unicode, строк и т. Д. У меня есть какие-нибудь сюрпризы? Вещи, которые не работают как следует?
Да ... я многословен! :) Я использую Dreamweaver CS3, но это не должно иметь значения. В моих реальных файлах нет символов UTF-8.
В ожидании всей вашей мудрости ...