ugrás a tartalomhoz

MySQL-hez milyen karakterkódolást használjak?

aspirany · 2008. Júl. 23. (Sze), 10.36
Már megint Én!

Köszönöm az eddigi segítségeket.Most újabb kérdésem van bár ezt rakhattam volna php-be is

Magyar ékezetes karaktereket szeretnék berakni adatbázisba (Mysql);Milyan karakterkódolás a legmegfelelőbb a magyar karakterek tárolására (UTF-8)?.Ill a weboldal milyen karakter kódolással (UTF-8) legyen figyelembe véve hogy az oldal tartalmaz ajaxot is.
 
1

UTF8

virág · 2008. Júl. 23. (Sze), 12.17
Igen, UTF8 - minden :)
2

rendeben

aspirany · 2008. Júl. 23. (Sze), 14.24
újabb probléma. Az sql parancsokat tárolt eljárással hívom meg, ha ékezetes karakter adok meg a Tábla(utf-8_general_ci) Incorrect string value: '\xC5\x91\xC5\xB1' for column 'pugyfelnev' at row 1 hiba uzenet.

Ha rendes sql insert akkor minden rendben.

Közben megvan a hiba.Hiába állítottam át az adtabázis karakter beállításait az sp még a latin1-t használta.
3

Set names?

janoszen · 2008. Júl. 23. (Sze), 14.32
Set names megvolt mielőtt elkövetted?
4

nem

aspirany · 2008. Júl. 23. (Sze), 15.41
nem
5

Ottahiba

janoszen · 2008. Júl. 23. (Sze), 15.49
Akkor ott a hiba, hogy a connection karakterkódolása más mint a betöltendő adaté.
6

set

aspirany · 2008. Júl. 23. (Sze), 16.31
mysqli_quer(SET NAMES UTF-8);

oldalak UTF-8 asok header....szintén

ajaxRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded, charset=utf-8");

encodeURIComponent

ezeket használom de a firefox nézőjében látom hogy a karakterek nem jók és az adatbázisba sem kerülnek ba jól

pl:szulhely áűúőöüó
7

Szomorú

janoszen · 2008. Júl. 23. (Sze), 16.58
És a PHP-ből küldesz UTF-8-as headert (mind az oldalban mind az AJAX request)?
9

igen

aspirany · 2008. Júl. 23. (Sze), 17.48
header('Content-Type: text/html; charset=UTF-8');

CALL SP...
8

mezők egybevetése

Szekeres Gergő · 2008. Júl. 23. (Sze), 17.48
attól még, hogy az adatbázis vagy a táblák kódolása utf még a mezőké nem biztos. nézd meg azokat is! Ajax nélkül menne?
10

ajax nélkül igen

aspirany · 2008. Júl. 23. (Sze), 17.49
ajax nélkül utf-8 nélkül (iso-8859-2) db(latin1) is ment.

közben kivettem az encodeuri-t akkor már a firefox POST jól küldi aza adatokat,de az adatbázisban még mindíg rossz.

kisidővel később...

latin1_swedish okés a betöltés
11

na végre

aspirany · 2008. Júl. 23. (Sze), 23.06
sok próbálkozás után úgy néz ki működöik a dolog.

DB UTF-8

az oldalak iso-8859-2, kivéve az ahonnan küldöm az adatokat az UTF-8;

1; SET NAMES UTF8;
2; ajax ("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
12

No way

janoszen · 2008. Júl. 24. (Cs), 09.09
Szerintem, ennek úgy kellene működnie, hogy _minden_ UTF-8. Nekem legalábbis eddig úgy működött. Az AJAX tekintetében pedig érdemes használni egy libraryt (talán erre a célra a Prototype a legegyszerűbb, de ez hitkérdés) mert azokban már kiküszöbölték a különböző böngészők okozta ökörségeket.
14

alapvetően az mindegy

Szekeres Gergő · 2008. Júl. 24. (Cs), 10.35
nyilván ez így nem szép, de ha a latin2-es kódolású file megkapja utfben kódolt adatokat, az utfben fogja beszúrni. viszont ugyan ezen logika alapján ha utfben lenne akkor is jól kellene működni..
16

javascript library vs charset

Hodicska Gergely · 2008. Júl. 25. (P), 01.10
Milyen böngésző különbségeket orvosol egy JS library karakterkódolással kapcsolatban?


Üdv,
Felhő
17

Nem tudom

janoszen · 2008. Júl. 25. (P), 09.29
Nem tudom megmondani, kevés tapasztalatom van a JavaScripttel, azt tudom, hogy nálunk az oldalak is UTF-8-ban vannak, az adatbázis is és természetesen az AJAXra adott válasz is, valamint Prototypeot használunk, ami (sejtésem szerint) beállítja a megfelelő request headereket, mert egy szem problémánk nem volt a karakterkódolással. Javítsatok ki, ha tévedek. :)

Update:

A prototype.js-ben találtam:

Ajax.Request = Class.create(Ajax.Base, {
...
    if (this.method == 'post') {
      headers['Content-type'] = this.options.contentType +
        (this.options.encoding ? '; charset=' + this.options.encoding : '');
Ha jól láttam, a használt változóknak pedig valami értelmes defaultjuk van.
13

Miért?

zila · 2008. Júl. 24. (Cs), 10.21
Van valami racionális indoka annak, hogy ne egységes karakterkódolást használj?
15

bocsi

aspirany · 2008. Júl. 24. (Cs), 21.17
Bocsánat hogy nem válaszoltam, be voltam havazva.

Na, siker !!! :) Megy UTF-8 al ,az egybevetés kellett beállítani mysqli_query($link,"SET NAMES 'UTF8'");

Na meg új adatbázist (UTF-8) mert volt egy kis keveredés (latin1,latin2).Szóval rendben megy minden.