Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > UTF8+DB+JSON


Автор: fics 18.10.2013, 08:41
Если пользователь вводит с  форумы русские буквы, то для втавки их в Базу Данных все равно нужно преобразовывать в UTF8 функцией 
iconv('cp1251','utf-8', 'вводимый текст');
Или можно этого не делать?

А если первоначальная кодировка не cp1251, а скажем какая нибудь немецкая?
Из этого следует, что никакой мультиязычности быть не может. Так как нужно заранее знать что на входе, чтобы его преобразовать правильно в utf-8.

Вопрос вообщем в том, как независимо от первоначальной кодировки все помещать в Базу в utf-8?

Автор: baldina 18.10.2013, 09:00
Цитата(fics @  18.10.2013,  08:41 Найти цитируемый пост)
как независимо от первоначальной кодировки все помещать в Базу в utf-8?

независимо не получится, надо преобразовывать из исходной. лучше иметь все в одной кодировке.

Цитата(fics @  18.10.2013,  08:41 Найти цитируемый пост)
пользователь вводит с  форумы

а дальше куда оно девается "с  форумы"? 
если ajax, то данные приходят в utf8 независимо от кодировки страницы.
или можно клиенту поручить
Код

<form accept-charset="utf-8">

Автор: fics 18.10.2013, 09:29
Да у меня вообще не форма а EXE клиент

Автор: bars80080 18.10.2013, 10:11
Цитата(fics @  18.10.2013,  08:41 Найти цитируемый пост)
Из этого следует, что никакой мультиязычности быть не может. Так как нужно заранее знать что на входе, чтобы его преобразовать правильно в utf-8.

соответственно, напрашивается естественный ответ: если изначально клиент в кодировке utf-8, то на нём можно вколачивать буквы любого алфавита. и не потребуется ни конвертировать ничего, ни узнавать, так как utf-8 держит все символы

Автор: baldina 18.10.2013, 10:18
fics, 
  • твой php скрипт в utf8 без BOM
  • твоя СУБД сконфигурирована на обмен по utf8 по умолчанию, либо из php устанавливается charset
  • твой клиент отдает в utf8 или на php производится перекодировка

Автор: fics 18.10.2013, 10:20
Спасибо за прояснение. 
Как для меня, но это уже в дальнейшем, мне нужно будет перейти на новую версию IDE с поддержкой utf-8. Других вариантов нет.

Автор: baldina 18.10.2013, 10:25
Цитата(fics @  18.10.2013,  10:20 Найти цитируемый пост)
новую версию IDE с поддержкой utf-8

а что за ide такая, что utf8 невозможен? кстати клиент сам может перекодировать MultiByteToWideChar/WideCharToMultiByte

Автор: fics 18.10.2013, 10:50
Цитата(baldina @ 18.10.2013,  10:25)
Цитата(fics @  18.10.2013,  10:20 Найти цитируемый пост)
новую версию IDE с поддержкой utf-8

а что за ide такая, что utf8 невозможен? кстати клиент сам может перекодировать MultiByteToWideChar/WideCharToMultiByte

Админка на магазин на Delphi7

Автор: fics 18.10.2013, 11:11
Есть два варианта 
1) Преобразовывать на сервере функцией iconv
2) Преобразовывать на клиенте функцией UTF8Encode

В первом случае нужно явно указывать из чего преобразовывать
Во втором ничего делать не нужно

Автор: baldina 18.10.2013, 11:23
да

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)