Stránka: 1 z 1
| [ Príspevkov: 21 ] | |
Autor | Správa |
---|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
mam na stranke funkciu, pomocou ktorej vypisujem info z XML suboru, ktory je na inom serveri.
Moja stranka je v windows-1250, ale ten subor XML bude mat asi ine kodovanie, lebo sa mi niektore znaky nezobrazuju spravne.
Kodovanie mojej stranky nechcem zmenit. Je nejaka moznost ako "prikazat" pri vypise nech to vypisuje v mojom kodovani?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Najlepsie je pouzivat UTF-8, s tym nie su ziadne problemy. Toto je defaultne kodovanie, cize ak nedefinujes encoding v XML hlavicke...
Kód: <?xml version="1.0" encoding="Windows-1250"?> ...tak sa prehliadac snazi zobrazit stranku v UTF-8.
Daj pozor aj na to, aby ten XML subor bol ozajstny XML subor a pamataj si aj, ze pri MIME type text/xml sa da kodovanie nastavit len v HTTP hlavicke, inak je kodovanie defaultne US-ASCII a inak ho nezmenis. Preto radsej pouzivaj application/xml.
Najlepsie by bolo, keby si to hodil niekam na web a poslal odkaz, nech sa mozeme pozriet.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
problem je ,ze ja kodovanie XML suboru nemozem zmenit, kedze je to na inom serveri. Je to vlastne reklama etarget v XML subore, z ktoreho vytahujem jednotlive reklamy.
Takze asi mi nic ine nezostava len zmenit kodovanie mojej stranky na UTF-8... comu som sa chcel vyhnut, nakolko teraz musim kvoli jednej reklame prestavovat vsetky subory aj databazu.. a to sa mi veru nechce..doteraz som vzdy pouzival windows1250 a nebol ziadny problem a vytvoril som uz stovky webov...
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Ako vytahujes tie reklamy? Ak PHPckom, mozes vlozit xml subor do stringu a prekonvertovat pomocou iconv().
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
ano, pomocou php. Pozeral som tu funkciu iconv, ale nebudem to kvoli reklame komplikovat. Tak som cely web predsa len prestavil na UTF-8, reklamy sa uz zobrazuju v pohode. Len mam problem s vypisom z databazy.
Subory mam vsetky v UTF-8, a po kazdom volani databazy mam mysql_query('SET NAMES UTF-8');
mysql_query('SET COLLATION_CONNECTION=utf8_general_ci');
a tiez aj pre celu databazu mam v phpmyadmine utf8_general_ci a aj pre jednotlive riadky v tabulke databazy. Avsak nezobrazuju sa mi spravne znaky pri vypise z dtb.
Viete mi poradit ako nastavit aj databazu, ked mam UTF-8 stranky? Aby som vedel do buducna, mozno budem odteraz robit len v UTF-8, ak mi toto pojde.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
V prvom rade, mas subor ulozeny v UTF-8? Ak nie, pouzi schopny textovy editor, v Notepad++ to spravis takto:
Ak ano, skontroluj, ci ti zle vypisuje aj normalny text (nielen ten z DB) - v takom pripade bude treba nastavit kodovanie v <meta> alebo http hlavicke.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
Pouzivam PHP designer, a v nom sa pekne da nastavit aj format aj kodovanie suboru. To mam nastavene na UTF-8, aj v hlavicke mam meta UTF-8.
Normalny text na stranke je v pohode s diakritikou.
Problem je len s vypisom z databazy.
Vsade /!!!/ v databaze som nastavil UTF-8_GENERAL_CI, a este aj pri kazdom volani databazy mam toto
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET NAMES UTF-8 COLLATE utf8_general_ci');
a napriek tomu sa text z databazy nezobrazuje korektne - č,ť,ž
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
ok ja sa chcem spýtať na to slovo "Všade". To, že si to nastavil v poliach a tabuľkách mi je jasné, ale nastavil si to aj pre databázu?
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
Overenie MySQL spojenia /pre celu databazu/ - utf8_general_ci - ine mi to tam ani nepusti.
Cela databaza - porovnavanie utf8_general_ci
jednotlive polia v tabulkach utf8_general_ci
konkretne tabulky - porovnavanie utf8_general_ci
Nikde inde som uz nastavenie kodovania nenasiel.
Z jednej tabulky mi to vypisuje v poriadku, ale z druhej nie..a to je zahada, pretoze je vsetko uplne rovnako nastavene aj pre druhu tabulku
v tej jednej tabulke su fixne ulozene nazvy, to mi vypisuje v pohode, ale v tej druhej sa vkladaju nazvy cez admin, a tie sa zobrazuju zle. Je pravda ze boli vlozene este s inym kodovanim, ale ani ked som zmenil kodovanie, sa nezobrazuju spravne.
Toto je hlavny dovod preco som nikdy nepouzival UTF-8, lebo som mal vzdy problem so zobrazenim z databazy a i ked sa to tu riesilo x-krat, nikde tu nevidim JASNE a zrozumitelne RIESENIE... PROSIM O RADU
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 | 35 Bydlisko: BA - WESTSIDE |
Neviem, či ti pomôže niečo takéto, ale... Jednoducho skús si niekde zálohovať obsah tabuľky v textovom formáte (tak, aby si mal diakritiku v poriadku v tom pôvodnom kódovaní, tuším win-1250), potom to uložiť do textového súboru, ten prekonvertovať textovým editorom do UTF-8, zmazať tú tabuľku a vytvoriť ju nanovo v UTF-8 a potom tam naspäť šupnúť tie dáta. Skús to a povedz, či pomohlo.
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
no len neviem ako dosiahnem aby v databaze bola normalna diakritika... ci dam utf, ci 1250 v databaze su blbe znaky a nie normalne č,ť,ž..atd
ale aj ked mam vsetko v utf a tak nieco vlozim cez admin do dtb, aj tak su tam blbe znaky...
ja uz som z toho zufaly..
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
skus vyskusat este nasledujuce riadky po vybere db:
Kód: mysql_query("SET character set utf8"); mysql_query("SET character_set_results=utf8"); mysql_query("SET character_set_connection=utf8");
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
hm, skusil som, ale nezobrazuje mi hlavne č a ť.
Namiesto nich je otaznik
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
databazu mas vytvorenu v utf8?
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
databazu som teraz konvertoval celu na utf..predtym bola v 1250.
Toto co si napisal
mysql_query("SET character set utf8");
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_connection=utf8");
som dal vsade aj pred vkladanim do dtb aj pred vypisom. Uz to vklada do databazy dobre, v databaze uz je spravna diakritika /len u tych novych poloziek co som teraz vlozil/. Ale vypis z databazy este stale neni spravny...
Ale nezobrazuje mi len č,ť .. a asi aj ž. Ale napr.ľ,š sú v poriadku
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
skus pouzit pspad na nastavenie kodovania suboru...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
vyskusam aj PSPad, ale teraz pozeram, ze tie nove nazvy co som vkladal uz v utf, tak uz sa vypisuju spravne - ale je tu mala zahada.
nazvy z databazy ja skracujem pomocou substr($nazov, 0, 22) - cize zobrazim len 22 znakov, a vzdy ten posledny znak ak je napr. č,ť,atd tak zobrazi ako otaznik.
Ale ked vypisem cely nazov, tak su vsetky znaky v poriadku...
Az na tento detail to vyzera uz byt v poriadku. Avsak vsade kde sa len dalo som napchal
mysql_query("SET character set utf8");
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_connection=utf8");
lebo bez toho mi to nejde.
No a samozrejme tie polozky v databaze, co som tam uz mal predtym, tak tie nezobrazuje spravne..tam su stale otazniky.
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
SET sa dava hned po vybere db, inde to nemusis davat... stare texty, ktore mas v db uz "deformovane", to uz imho nespravis, aby sa ti to zobrazovalo spravne... jedine, ze by si to rucne poprepisoval...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 | |
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
Tominator: skusil som pouzit aj mb_substr ale ked zobrazim len cast z nazvu, tak posledne pismeno je vzdy otaznik /ak pripadne na posledne pismeno č,ť, atd/.
Cize napr. len na skusku som vlozil do dtb nazov skúška admin ľščťžýáíé, ale z tohto mi zobrazi len 17 znakov napriek tomu ze mam substr na 22. Asi tie znaky s diakritikou neberie ako jeden znak. Proste zobrazi mi toto: skúška admin ľšč�...
Ale ked nedam substr, tak mi zobrazi cely nazov v poriadku, bez otaznika...
Ale nevadi, ak sa mi to nepodari vyriesit, necham vypisovat cele nazvy. Ale ak by niekto mal este nejaky napad, bol by som rad.
Inak vsetko okrem tohto detailu vyzera ze funguje pekne v utf8.
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 | 35 Bydlisko: BA - WESTSIDE |
To je preto, že v UTF-8 sú mnohé špeciálne znaky (napr. s diakritikou) kódované dvomi bajtami, zatiaľ čo bežné ASCII znaky len jedným. Niektoré PHP funkcie (napr. strlen) počítajú dĺžku reťazca ako počet bajtov a potom im vychádzajú blbé výsledky. http://www.pcforum.sk/velkost-textu-pos ... tml#598958
Skús pri volaní toho mb_substr nastaviť aj správne kódovanie, malo by to potom byť v poriadku
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Stránka: 1 z 1
| [ Príspevkov: 21 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v HTML, XHTML, XML, CSS | 10 | 1348 | 10.05.2023 13:48 jojo46 | | v Ostatné programy | 4 | 392 | 25.03.2010 0:12 DeaDMan | | v PHP, ASP | 14 | 1249 | 03.07.2009 11:07 Unlink | | v PHP, ASP | 2 | 777 | 15.10.2009 21:42 neopagan | | v Perl, Python, Ruby, CGI | 4 | 727 | 09.03.2013 13:54 tangerine | | v Ostatné programy | 0 | 710 | 24.07.2019 11:17 liveman | | v Internetový marketing, SEO, reklama | 3 | 541 | 09.11.2013 11:22 capricorn7 | | v HTML, XHTML, XML, CSS | 10 | 1339 | 19.06.2007 18:48 javo | | v JavaScript, VBScript, Ajax | 2 | 433 | 14.08.2018 10:24 Pablo Montero | | v Sieťové a internetové programy | 0 | 391 | 10.10.2015 14:09 Marsko | | v Ostatné programy | 1 | 432 | 14.08.2013 16:53 Mandy | | v HTML, XHTML, XML, CSS | 1 | 603 | 04.05.2017 17:03 void | | v HTML, XHTML, XML, CSS | 1 | 920 | 16.12.2011 16:49 Ďuri | | v HTML, XHTML, XML, CSS | 0 | 768 | 02.11.2009 17:46 sINN3r | | v Databázy | 3 | 826 | 14.11.2008 12:39 walther | | v HTML, XHTML, XML, CSS | 8 | 737 | 22.10.2013 17:00 asdf13 |
|