Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: psaní háček do databáze

Aktivity
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:23.5.2013 13:15

chtěl bych se zeptat proč mi nechce databáze vzít písmena ř a č a místo nich míše otazníky mám nastaveno
CHARACTER SET cp1250 COLLATE cp1250_czech_cs
a stejně mi to ř a č nebere

 
Odpovědět
23.5.2013 13:15
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Milan Gallas
Kit:23.5.2013 13:17
SET NAMES cp1250;

Nic víc tam psát nemusíš. Data tam nahrej znovu.

Nahoru Odpovědět
23.5.2013 13:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovídá na Kit
Milan Gallas:23.5.2013 13:34

PDO::ATTR_ERRMODE => PDO::ERRMODE_EX­CEPTION,
PDO::MYSQL_AT­TR_INIT_COMMAND => "SET NAMES cp1250"

nefunguje ř a č mi to stejně nevypisuje

 
Nahoru Odpovědět
23.5.2013 13:34
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Milan Gallas
David Hartinger:23.5.2013 13:47

A funguje ti to v adminovi? Třeba máš aplikaci blbě. Kdybys používal UTF-8, nemusíš takové věci vůbec řešit.

Nahoru Odpovědět
23.5.2013 13:47
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Milan Gallas
Kit:23.5.2013 13:51

Zřejmě vstupní data nemáš v cp1250, ale možná v UTF-8. V tom případě je samozřejmě nutné napsat

SET NAMES utf8;
Nahoru Odpovědět
23.5.2013 13:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovídá na Kit
Milan Gallas:23.5.2013 13:52

měl sem utf8 a nepsaloto ani čárky tak nevim.

 
Nahoru Odpovědět
23.5.2013 13:52
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:23.5.2013 13:54

Dal sem tam cp1250 tak to začalo psát čákra a ž,š ě
poté sem jěště nastavil tabulku na cp1250_czech_cs
ale stejně mi to č a ř nebere tak nevim proč :(

 
Nahoru Odpovědět
23.5.2013 13:54
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Milan Gallas
Kit:23.5.2013 14:00

Ale takhle se nedá experimentovat. Musíš vědět, jaké znaky tam dáváš. Pokud je to UTF-8, tak musíš do deklarace napsat utf8. Pokud tam dáváš Latin2, musíš tam napsat latin2.

Jaké znaky do té DB cpeš? To nesmíš hádat, ale musíš vědět a podle toho nastavit konfiguraci.

Nahoru Odpovědět
23.5.2013 14:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Milan Gallas
David Hartinger:23.5.2013 14:03

Záleží jak na kódování v DB, tak na kódování samotných souborů v PHP aplikaci, hlavičce stránek a podobně. Chyba může být na mnoha místech, psal jsem ti, ať si to zprovozníš pod UTF-8 alespoň v adminovi, abychom se měli od čeho odpíchnout. Pravděpodobně máš i samotná data špatně a to enspraví že v DB něco přepneš, musíš je nahrát znovu.

Nahoru Odpovědět
23.5.2013 14:03
You are the greatest project you will ever work on.
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:23.5.2013 14:14

data sem nahrával z Excelu a když sem nahrával data nastavil jsem je na windows-1250

 
Nahoru Odpovědět
23.5.2013 14:14
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:23.5.2013 14:14

takže všuda mám nastaveno kodovani windows a nic

 
Nahoru Odpovědět
23.5.2013 14:14
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Milan Gallas
Kit:23.5.2013 14:21

Zřejmě nemáš. Zkusil jsi tam ta data nahrát znovu se správným kódováním? Co kdybys to celé udělal znovu kompletně s UTF-8?

Editováno 23.5.2013 14:23
Nahoru Odpovědět
23.5.2013 14:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovídá na Kit
Milan Gallas:23.5.2013 15:02

zkusím to předělat a pak napíšu díky.

 
Nahoru Odpovědět
23.5.2013 15:02
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:24.5.2013 9:59

celé to mám v utf8:
mb_internal_en­coding("UTF-8");
PDO::MYSQL_AT­TR_INIT_COMMAND => "SET NAMES utf8"
a porovnání utf8_czech_ci (ani bez toho mi to nejde)

ale už mi to nevipisuje ani čárky a žádné háčky prostě nic utf8 mi nefunguje .

 
Nahoru Odpovědět
24.5.2013 9:59
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Milan Gallas
David Hartinger:24.5.2013 10:05

Již potřetí se tě ptám, jestli to máš v pořádku v Adminovi. Pokud nechceš pomoct, nevím, proč píšeš na forum. Na kódování Windows zapomeň, to už jsem ti také psal.

Nahoru Odpovědět
24.5.2013 10:05
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Milan Gallas
Kit:24.5.2013 10:06

Tak to máš nějaké divné. Nahrál jsi data do DB znovu?

Nahoru Odpovědět
24.5.2013 10:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:24.5.2013 10:15

jo mimochodem sem na adminovi a mam to ok data sem nahral znovu, chci pomoct. ale utf8 mi proste nejde uplně to zdeformuje data chapete a kdyz tam mam windows tak to nepíše pouze ř a č a píše místo nich otazníky.

 
Nahoru Odpovědět
24.5.2013 10:15
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Milan Gallas
David Hartinger:24.5.2013 10:17

Že ti to zdeformuje pouze něco neznamená, že je to lepší, je to ten samý problém. Mám to ok mv adminovi znamená co? Vidíš v PHPMyAdmin nebo jiném nástroji co používáš pro správu databáze diakritiku v datech normálně, když si data zobrazíš? Pokud ano, máš z poloviny vyhráno, protože databáze je v pořádku. Je tedy problém na straně aplikace. Máš tam HTML hlavičku s UTF-8? A soubor je také v UTF-8?

Nahoru Odpovědět
24.5.2013 10:17
You are the greatest project you will ever work on.
Avatar
Зайчик
Člen
Avatar
Odpovídá na David Hartinger
Зайчик:24.5.2013 13:29

mám úplně stejný problém :D

na straně databáze je vše v pořádku pokud přidám data přes phpmyadmina tak "ěščřžýáíé" naprosto v pořádku, ale pokud to přidám přes aplikaci... výstup je"Ä?Å?žýáÃÃ" :D

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Celý projekt jede na UTF-8 databáze taktéž soubory jsou také úložené v kódování UTF-8. Sakra už fakt nevím kde by mohl být problém. :(

Nahoru Odpovědět
24.5.2013 13:29
Коммунизм для нашего будущего!
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Зайчик
Kit:24.5.2013 13:41

Vypádá to, jako kdybys původní UTF-8 překódovával z domnělého cp1250 na UTF-8. Druhou (zbytečnou) transformací se to takhle rozhodí.

Nahoru Odpovědět
24.5.2013 13:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Зайчик
Člen
Avatar
Odpovídá na Kit
Зайчик:24.5.2013 13:43

já všechny data smazal z cp1250 jsem předělal na utf8 a data nahrál a vzniklo tohle :D

Nahoru Odpovědět
24.5.2013 13:43
Коммунизм для нашего будущего!
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Зайчик
Kit:24.5.2013 13:48

Pokud to tam nahráváš přes webový formulář, tak ten to interně překódovává podle znakové sady webu. Tedy pokud tu stránku máš v UTF-8, tak i když do textarea napíšeš text v cp1250, je před přenosem na server překódován do UTF-8. Vkládej tam tedy takový text, který pro tebe bude čitelný.

Nahoru Odpovědět
24.5.2013 13:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Зайчик
Člen
Avatar
Odpovídá na Kit
Зайчик:24.5.2013 13:57

To jsem teda moc nepochopil, pokud mám databázi v UTF-8 a celý web page mam taky v UTF-8 a posílám to přes formulář do kterého píšu (ěščřžý) tak se to v UTF-8 i odešle na server podle toho co říkáš. V tom případě absolutně nevím kde je chyba protože db je v UTF 8 je v pořádku aplikace,celý projekt a všechny page v něm je v kódování UTF-8 nevím proč mi tedy do DB posílá nesmysli. Příjde mi že mam všechno v pořádku :D i když je něco absolutně špatně kámoš říkal že to dělá netbeans že to celé kóduje ve windows1250 i když jsem celý projekt v properties překódoval na UTF8? Jinak fakt už nevím kde je zrada

Nahoru Odpovědět
24.5.2013 13:57
Коммунизм для нашего будущего!
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Зайчик
David Hartinger:24.5.2013 14:46

Netbeans určitě nic nekóduje v CP1250.

Nahoru Odpovědět
24.5.2013 14:46
You are the greatest project you will ever work on.
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:24.5.2013 20:26

přikládám soubor prosím o radu:

databáze: CREATE TABLE obedy (id INT UNSIGNED AUTO INCREMENT,
polevka TEXT, menu1 TEXT, menu2 TEXT, datum TINYTEXT)

 
Nahoru Odpovědět
24.5.2013 20:26
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Milan Gallas
Kit:25.5.2013 10:06

Soubor index.php je v cp1250, polevky se vloží špatně.

Nahoru Odpovědět
25.5.2013 10:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 27 zpráv z 27.