Type input text html charset

Type input text html charset

Установка чарсета по умолчанию — Windows-1251 (не помню точно циферку. ), кодировка базы — UTF-8. До тех пор пока писали латиницей — никаких проблем это не вызывало. Кириллицей, потенциально, можно заполнить только одно текстовое поле, и кодировку всех страниц из-за этого менять не хотелось бы. Кодировку базы менять нельзя.

При вызове данных — вся кирилица заменяеться вопросами. Остаються только знаки препинания.
При вводе данных в базу — в поле таблицы появляеться один непонятный символ: какой-то квадрат, типа [], только одним символом.

Искал в нете, нашёл что при декларировании поля можно написать:

однако не прошло.

Цитата:

В пхп нашёл функцию — mb_convert_encoding(что, во_что, из_чего),

сравни

Цитата:

При вызове данных — вся кирилица заменяеться вопросами

Пробовал перед SQL запросом данных из БД выполнить

dacuan
«Что подразумевается под «кодировка базы — UTF-8″? »
Для таблиц прописан charset=utf8 и collision тоже.

Kokoc
«после подключения к mysql дать команду «SET NAMES cp1251»
мускул сам должен сконвертировать данные в CP1251->UTF8 при вводе, а при выводе перекодировать UTF8->CP125″
А вот это дело! Сейчас пойду пробовать.

Jokerjar
«У тэга FORM есть атрибут ENCTYPE, определяеющий, каким образом данные из формы будут закодированы для передачи обработчику. Может этим воспользоваться?»
Там форма большая очень. хотелось бы всё таки поменять одно поле а не всю форму. Впрочем если не получиться, сделаю как ты сказал.

В общем, так (при условии что у тебя БД и таблицы в UTF8):
1) Если страница (форма) в кодировке UTF8 (), то сразу после mysql_connect() сделать mysql_query(«SET NAMES UTF8»)

2) Если у тебя страница в windows-1251, то нужно давать запрос «SET NAMES CP1251»

Но старые данные, внесенные до изменения кодировки, будут выводиться квадратами или «?».

IMHO IE старается перекодировать страницу в cp1251 и получается белиберда.

P.S. Еще теоретически в HTML в теге INPUT есть атрибут LANG (напр. LANG=»ru»).
Также (теоретически) на обработку может влиять тэг

Страница в кодировке Windows.
При выводе информации из базы (UTF-8) в текстовое поле, комманда SET NAMES CP1251 помогла. И всё читаемо.

Однако, при попытке ВВЕСТИ эту информацию ОБРАТНО В БАЗУ, уже в базе получаються вопросы, со знаками препинания.

Т.е. СКуЛ после комманды SET NAMES CP1251 выдаёт информацию в кодировке win, но вот при попытке ввести текст в кодировке windows в поле таблицы с кодировкой UTF-8, эта комманда не помогает.

Атрибут LANG не поможет. Он устанавливает язык, а не кодировку. Вообще не знаю для чего это надо.

Посмотрел внимательно.
Страница в кодировке windows.
запрос «SET NAMES CP1251» даю и перед выводом и перед вводом.
На вывод работает, на ввод — нет.

Т.е. записываешь, сразу читаешь в той же странице, в той же ее кодировке 1251 — и вопросы/квадраты?
И откуда знаешь, что в базе «квадраты», а не правильные символы. Чем (в чём) смотришь?
Для каждого клиента (и страницы html/php) нужно давать SET NAMES исходя из той кодировки, в которой он работает (напр. для консольного win-клиента mysql.exe это ‘set names cp866’, для unix-клиента будет «set names koi8r»).

Посмотри также скрипты — может, у тебя где-то закрывается mysql_close(), а потом снова mysql_connect(), но далее запросы без предварительного «set names».

Вот мой рабочий скрипт (index.php):

В общем разобрался я. То есть, нельзя сказать что разобрался, но методом эксперемента зароботало. Поменял в базе Collation поля из «utf8_unicode_ci» в «utf8_general_ci», и всё теперь работает. И на ввод и на вывод. Что это такое — хоть убей не знаю, но работает.

Компьютерный форум Ru.Board » Интернет » Web-программирование » Как поменять кодировку ТОЛЬКО для одного поля INPUT text?

Реклама на форуме Ru.Board.

Powered by Ikonboard «v2.1.7b» © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2023

Источник

HTML form, inputing utf-8 string firefox and IE !

alt text

I built form here, When I input utf-8 data to it at firefox 3.6.8 it is like this: but it works fine with IE.8 It seems that while typing (or filling) the input box, the characters are all uppercase. Just like that you are holding shift and type it. anyone knows what is the problem with firefox? edit : it is a simple form

Can you show us the code, preferably of a small, self-contained example that demonstrates the problem clearly?

2 Answers 2

Is that what appears when you type in a form field, before submitting anything? Because if so, there is no UTF-8 in the problem. Strings at the web browser side are purely Unicode-based; it’s only when you’re moving them from the browser to the server or back that encoding matters come into play.

My guess would be a simple font problem. Clearly from your screenshot, Firefox is using a different font to IE, and perhaps that font is one without proper support for features necessary to Arabic like the contextual ligatures that take care of choosing the right glyph variant of each character. Check the stylesheets and use Firebug if necessary to find out what font is being applied to that input.

is basically no use, because IE handles it wrong. It uses UTF-8 as a fallback encoding (for characters that don’t fit in the page’s current charset) instead of the only encoding.

To get a form that submits in UTF-8, you must ensure that the page containing the form is served as text/html;charset=utf-8 using a Content-Type header and/or tag.

action="print $_SERVER['PHP_SELF'];" 

I’m presuming you’ve mis-pasted that and the value is actually in a tag, otherwise the form wouldn’t work at all.

This is an HTML-injection hole, potentially leading to cross-site scripting attacks. You should always HTML-encode strings you are injecting into HTML text content or attribute values, using htmlspecialchars() .

Источник

Читайте также:  Java map to json maps
Оцените статью