Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Проблем cp1251, PHP & MySQL


Препоръчан отговор


Правя една малка формичка, която се записва в MySQL, когато влеза в базата не се чете.... колацията на ДБ-то е cp1251_bulgarian_ci, когато вкарвам текс от PHPMYADMIN текста се чете, за това отхвърлям вариянта пробледа е в базата. Търсих разни декодиращи функции но 90% от тях циклят а другите 10% не работят или не правят това което трябва. Ако някой има някаква идея ще съм благодарен ако я сподели.

Благодаря предварително!

Линк към този отговор
Сподели в други сайтове

A апачато конфигурирал ли си го ? Файла httpd.conf трябва да го направиш да разпознава кирилица .

Линк към този отговор
Сподели в други сайтове

Търсих из него, но не видях къде му е Charencoding setting-а.Ако имаш представа как и къде трябва да го направя моля кажи ми. Не мисля, че проблема е в Апаха, защото през PHPmyAdmin всички си работи, по-скоро е някаква грешка при вкарването на текс през MySQL PHP API-то.

Редактирано от Maverick (преглед на промените)
Линк към този отговор
Сподели в други сайтове

Оправих го. Благодаря все пак. Проблема беше в колацията на таблиците в MySQL.

Измислих що годе добър начин да пиша в тях.


Линк към този отговор
Сподели в други сайтове
  • 4 седмици по-късно...
Оправих го. Благодаря все пак. Проблема беше в колацията на таблиците в MySQL.

Измислих що годе добър начин да пиша в тях.

<{POST_SNAPBACK}>

Какво точно направи?

Линк към този отговор
Сподели в други сайтове
Какво точно направи?

<{POST_SNAPBACK}>

Ами с phpmyadmin можеш да сменяш колацията на таблиците.

Също, ако добавиш към структурата им в дъмп файла - "DEFAULT CHARSET=cp1251" няма да се налага да го правиш на ръка.

Ако имаш представа как и къде трябва да го направя моля кажи ми.

Ако искаш по подразбиране да се ползва родната кодировка - само трябва да зададеш в /etc/my.cnf:

default-character-set=cp1251

Линк към този отговор
Сподели в други сайтове

Всъщност това, което направих не е да сменя колацията на cp1251, а я сложих на latin1_swedish_ci. Това оправя нещата до толкова, че да вкарваш и вадиш текст от кирилица на кирилиза, но не го пази като кирилица в базата.

Както каза Кю-тех можеш да сложиш "DEFAULT CHARSET=cp1251", но това е различно от колацията, има си опция за "DEFAULT" колация. Ако направиш и двете на cp1251 би трябвало да стане. Кажи какво си направил после :clap:

Линк към този отговор
Сподели в други сайтове

Благодаря за отговорите!

Но проблема си остава!!!!

Инсталирах си на PC'to - EasyPHP - www.easyphp.org.

Дръпнах от нета един скрипт (ползвам го за направа на страница за агенция за недвижими имоти). Скрипта се намира на http://real-estate-management-software.org/

Та, малко го модифицирах (кирилизирах го - менютата да бъдат на български, както и charset'a в layout.html смених на windows-1251 ), модифицирах my.ini - (зададох в [mysqld] default-character-set=cp1251, колацията на таблиците за базата данни я направих на cp1251_bulgarian_ci, но ...

записвайки от панела на администратора (информацията влизаща в базата данни се записва на български), но на менюто на админа излизат символи (да кажем задал съм дилър Пешо - но излиза Ïåøî).

Когато напиша да кажем в Areas пак нещо на български - пак се появяват странните символи, но ако след промяната отидем на меню Properties там вече го виждам изписано на български.

Установих, че в първата колона, на който и да е линк в менюто на Admin'a винаги излизат символи, докато при втора, трета и т.н си излиза без проблем.

А при останалите фаилове ползващи базата данни (Search, All properties всичко си е точ.

Набор от символи(Charset) на файла в mysql e UTF8.

Къде греша?

Линк към този отговор
Сподели в други сайтове

Честно да ти кажа, не знам, пробвай да смениш набора от символи в SQL на cp1251.

Моят проблем е точно обратното на твоя, аз не вижам какво пише в базата, но чета нявсякъде. Проблема се решава с PHP функция, но нямам време да търся или направя нещо работещо. В страницата на PHP има доста постове за функции, който според авторите работят, но нито една от тях не ми свърши работа. Според мен за да излиза всичко правилно трябва да се проверят всички настройки: набор от символи в MySQL, колация в MySQL, набор от символи в HTML страницата(не само на тази която въвеждаш, а на всички файлове в цомпонент манеджера), тогава всичко би трябвало да върви, но имам чуството, че Windows всъщност вкарва текста в друг набор от символи и за това трябва преди всяко вкарване на текст от HTML ворма в базата текста да се конвертира от формата на Windows, който по дефаулт е unicode в cp1251, поне така е в MFC. Продължавай да дерзаеш, в момента съм зарязал проекта който е на кирилица и работя в/у друг по-спешен а той си е на английски и няма проблеми с вкарването и изкарването на текстове от базата, като го завърша ще почна пак другия и ако намеря решение на проблема ще го опиша подрибно тук.

Успех!

Линк към този отговор
Сподели в други сайтове
Извинте за офтопика, но Maverick, къде хостваш?

<{POST_SNAPBACK}>

Проекта по пойто в момента работя се хоства в Англия и е на анлийски, а този, който е на бг е на localhost :)

Линк към този отговор
Сподели в други сайтове
Когато напиша да кажем в Areas пак нещо на български - пак се появяват странните символи, но ако след промяната отидем на меню Properties там вече го виждам изписано на български.

Установих, че в първата колона, на който и да е линк в менюто на Admin'a винаги излизат символи, докато при втора, трета и т.н си излиза без проблем.

А при останалите фаилове ползващи базата данни (Search, All properties всичко си е точ.

Набор от символи(Charset) на файла в mysql e UTF8.

Къде греша?

<{POST_SNAPBACK}>

Въпросният скрипт почти не пипа кодировката.

Ако си вкарвал таблиците поотделно покрай експериментите ти е възможно една от тях да е внесена с друга кодировка. Можеш да се ориентираш по-лесно, като направиш дъмп.

Mysql винаги използва колация. Ако не е зададена в my.cnf или при заявката, по подразбиране се приема тази с която е бил компилиран (по принцип latin1_swe). Тогава, ако знаците ти са в UTF8 кодировка и не си задал колация, Mysql ще ги капсулира в latin1. Принципно пак може да бъдат достъпни, но ще имаш проблеми с полетата...

Като погледнах скрипта и ми стана смешно... ООП в РНР...

Редактирано от Q-tech (преглед на промените)
Линк към този отговор
Сподели в други сайтове
Като погледнах скрипта и ми стана смешно... ООП в РНР...

<{POST_SNAPBACK}>

И кое му е смешното?

Както и да е, мъча в момента Апаха, искам да си настроя по някакъв начин директория, която не е в DocumentRoot-а на Апаха да излиза в него (DocumentRoot-а), нещо като линк(Shorcut), в UNIX това е възможно, но аз съм с Windows XXXP. Чета документацията в момента и тествам разни вариянти, но не става.

Дайте някаква идея.

Благодаря!

Линк към този отговор
Сподели в други сайтове
  • 7 месеца по-късно...

Може и да се повторя, но забелязах, че доста хора се сблъскват с този проблем...

При мен кодировката се оправи като добавих следния ред, след mysql_connect и mysql_select_db:

mysql_query("SET NAMES CP1251");

Линк към този отговор
Сподели в други сайтове
И кое му е смешното?

Както и да е, мъча в момента Апаха, искам да си настроя по някакъв начин директория, която не е в DocumentRoot-а на Апаха да излиза в него (DocumentRoot-а), нещо като линк(Shorcut), в UNIX това е възможно, но аз съм с Windows XXXP. Чета документацията в момента и тествам разни вариянти, но не става.

Дайте някаква идея.

Благодаря!

ами използвай виртуални хостове

Линк към този отговор
Сподели в други сайтове
ами използвай виртуални хостове

Много отдавна реших проблема.

Линк към този отговор
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване