Титла: Mysql -> php - Проблем с енкодинга Публикувано от: RedIce в Dec 19, 2006, 12:16 Така, като за начало, съм начинаещ с PHP-то (вече 3 год, ама не ми остава време да го захапя по сериозно), но горедоло се справям за това което ми трябва.
Проблема който имам, мисля че става ясен от заглавието на темата, имам данни на кирилица в MySQL и правя най-елементарна заявка за да ми ги визуализира, и ми излизат само ???????????, коалиците съм ги настроил, като ползвам други готови скриптове нямам този проблем, като се опитам да визаулизирам данните по друг начин нямам проблем, но с най обикновен php скрипт и почва да се дъни... какво ли не тесвах не става :( пробвах и с phpadmin, няма проблеми, визуализира си данните правилно, ако имаше проблеми и там щеше да се издъни. Ползвам: Slackware 10.2 - up to 11.0 mysql Ver 14.12 Distrib 5.0.24a httpd Server version: Apache/1.3.37 (Unix) PHP 5.1.6 (cli)
Така, какво греша и каво пропускам.... пробвах да сложа и html код и да сетна енкодинга, но нямаше ефект :) Титла: Mysql -> php - Проблем с енкодинга Публикувано от: Hapkoc в Dec 19, 2006, 12:30 Каква кодировка изпраща web сървъра? (AddDefaultCharset?)
Титла: Mysql -> php - Проблем с енкодинга Публикувано от: RedIce в Dec 19, 2006, 12:37
това е от phpinfoto в httpd.conf нямам подобна опция, опитвал съм се да променям charseta в php.ini но нямаше ефект както и да е, защо всички други скриптове работя/форуми, статистики, и други бози/, които ползвам на готово, а този най-елементарен не иска, сигорно трябва да има нещо... Титла: Mysql -> php - Проблем с енкодинга Публикувано от: lisik в Dec 19, 2006, 16:04
първо за каква кирилица говорим? utf8 или за cp1251. Ползвай utf8 ако не е твърде късно Ако си конфигурирал базите данни/таблитите/полетата в MySQL и AddDefaultCharset Apache за utf8 няма да имаш проблем. За Apache ... даже и да си указал в хтмла utf-8 ако апача не е с AddDefaultCharset utf8 пак ще ти го дава като ISO-8859-1 щото това е по подразбиране в апач. Щом ти липсва AddDefaultCharset в httpd.conf сложи си. Колацията в MySQL слагам на utf8_general_ci и нямам проблем. Титла: Mysql -> php - Проблем с енкодинга Публикувано от: Warstomp в Dec 19, 2006, 16:27
Ето моя файл за връзка към базата с данни. Обърни внимание на последните 2 реда. Мисля че ще ти помогнат. Успех. Титла: Mysql -> php - Проблем с енкодинга Публикувано от: PsYhLo в Dec 19, 2006, 16:35 добави това към конфигурационния файл на MySQL-а
utf8 го замени със енкодинга който ти използваш и не би трябвало да имаш повече такъв проблем по този начин си оправям аз проблема когато си преинсталирам машината и ми прави такива мизерии Титла: Mysql -> php - Проблем с енкодинга Публикувано от: Йордан в Dec 19, 2006, 16:52 $this->query(”SET NAMES cp1251″
Титла: Mysql -> php - Проблем с енкодинга Публикувано от: lisik в Dec 19, 2006, 17:12 за set names. това е крайна мярка когато нещата са се оплескали или не са под твой контрол. Ако всичко е наред не се налага употребата му.
Титла: Mysql -> php - Проблем с енкодинга Публикувано от: RedIce в Dec 19, 2006, 18:15 според мен и AddDefaultCharset е малко крайна мярка, защо всичко друго работи а моето не
това беше идеята... коалиците непоня дали ги правих на UTF-8, на 1251 са, но както казах, дразня се че навсякаде ги визуализира но не и в моя код, ако имаше проблеми с визуализацията или някакви донатсройки от апаче/пхп, зящо тогава пхпадмина ми визуализира правилно нещата ще пробвам и номерът на MaX_Ass, но утре... преди секунди тествах един гуиде за инсталация на qmail с разните му модули, http://mirror.netforce-is.nl/pub...._2.html и накрая така се бях отнесал, защото ме занимаваха и с други глупости.... и стигнах до един много весел ред: mv /usr/lib /usr/lib.old mv /usr/bin /usr/bin.old mv /usr/sbin /usr/sbin.old chmod 0 /usr/sbin.old chmod 0 /usr/bin.old chmod 0 /usr/lib.old още ме е яд как можаг да направя подобна глупост, и то без да се замисля.... утре ще ида и ще го фиксна локално...... .... баси подобна глупост никога не съм правил, това ще ми държи влага много време напред Титла: Mysql -> php - Проблем с енкодинга Публикувано от: Hapkoc в Dec 19, 2006, 19:01 Стават такива работи като бърза човек. :)
Титла: Mysql -> php - Проблем с енкодинга Публикувано от: lisik в Dec 20, 2006, 11:19
Отново за AddDefaultCharset. защо я има тази директива? повечето хора като пишат хтмл не не се занимават с HTTP хедъри. Тази дирекрива котролира енкодинга направо от хедъра и с нея се съобразяват браузърите. например конфигурацията по подразбиране на апач в дебиан/убунту и др.
при това положение със следния хтмл
ще има проблем с кирилицата. Решението е AddDefaultCharset или го правиш на утф8 или го изключваш с Офф. В слакуер обаче AddDefaultCharset не е зададено което е равно на AddDefaultCharset Off защото това е по подразбиране. Затова ми се струва че проблема ти е в таблицата. Поне можеш да елиминираш апача като източник на проблема с проста проверка. Тези програми за които говориш просто имат добре направени дб/таблици и по-малко вероятно да си слагат хедъри. Направени са да работят на всякъде Проблем който ми се е случвал в не-утф8 таблица да има вкарани утф8 данни тогава set names помага но по-добре е да се оправи таблицата. дай инфо за таблиците ти Титла: Mysql -> php - Проблем с енкодинга Публикувано от: RedIce в Dec 20, 2006, 21:23 тъкмо сядам на пц, след вчерашният инцидент, системата ми е он-лине и продъжавам с php експериментите (по късно ще оправям маила)...
понеже таблицата е малка (за сега), ще направя един дъмп за да се види всичко....
В момента, коалицията ми е: utf8_unicode_ci, но това го направих преди малко за тест, иначе до преди малко ми беше:cp1251_bulgarian_ci --- иска ми се да намеря решение, без да пипап httpd.conf, защото утре ще ми се наложи да направя нещо до което нямам достъп и..... ============ ЕДИТ: Номерът със SET NAMES проработи (по медтода на Max_Ass)... все пак ако имате други предложения слушам Титла: Mysql -> php - Проблем с енкодинга Публикувано от: Hapkoc в Dec 23, 2006, 13:02 Добре де, ако проблема е в кодировката, която праща (или не праща) apache, това може да се реши ей така:
<?php header("Content-type: text/html; charset=windows-1251"); ?> Титла: Mysql -> php - Проблем с енкодинга Публикувано от: RedIce в Dec 30, 2006, 07:21
Нищо не прави това.... /бях убеден в това, но все пак го тествах/ това играе роля само HTML-то, тоест за вече генераната страница, просто казва на браузара каква кодировка да използва, нищо повече, а в гореописаният случай, проблема е малко по първичен, и проблема не е с браузара. Както каза вече, SET NAMES свърши работа... Титла: Mysql -> php - Проблем с енкодинга Публикувано от: lisik в Dec 30, 2006, 19:28
здр копирах дословно това за таблицата пуснах го без проблем . макар това за двата вида колации да е странно cp-1252 и utf8. все пак може да решиш кое да е от двете. единственото което направих с пхп кодати от предната страница е че му сложих
|