|
Karakterkódolási hiba 2 éve
|
Karma: 0
|
|
Sziasztok.
Felmásoltam a magyar oscommerce magyar változatát, de minden ékezetes betű helyett kérdőjel jelenik meg, még a telepítésnél is.
Ha a böngészőben UTF-8-ról ISO 8859-2 kódolásra váltok, akkor jól jelenik meg, de minden egyes frissítésnél visszaáll a rossz megjelenés.
Tud valaki segíteni?
|
|
ssjoco
Fresh Boarder
Hozzászólás: 2
|
|
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 23
|
|
Állítsd fix UTF-8-ról automatikus felismerésre a böngészőt.
|
|
|
|
Üdv,
tgely
V3, Master Products, Extra fields, Emails, STS, V3 bővítmények. Oscom.hu
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
|
|
Javaslom ezt, és minden ilyen további gondod meg lesz oldva:
A fórumszabályzat 7 és 12 pontjának megsértése miatt 2 hétre felfüggesztve.
|
|
DiabloCorsa
|
|
Utolsó szerkesztés: 2010-01-23 18:18 : vakondka.
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 0
|
|
A szerver UTF-8 kódolást használ, ezt nem lehet megkerülni. Minden fájlt átkonvertáltam ANSI-ból UTF-8-ra, így jó. A MySQL adatbázis kapcsolatot is UTF8-ra módosítottam.
|
|
ssjoco
Fresh Boarder
Hozzászólás: 2
|
|
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
|
|
ssjoco!
Lehetséges, hogy Nálad a nyelvi fájlok, az admin és vevő oldal is UTF-8 kódolást használ. Így lehet, hogy ezzel a kódolással minden szöveg helyesen jelenik meg a monitoron.
1. Hogyan néz ki a képernyő alsó részén a "footerben" a dátum kiírása???
|
|
DiabloCorsa
|
|
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 9
|
|
Szia!
A gond kicsit összetettebb ettől. Az UTF-8-ra átállás nem merül ki annyiban, hogy a nyelvi fájlokat átütöm UTF-8-ra.
Át kell konvertálni az összes nyelvi fájlt UTF-8-ra;
Átállítani a CHARSET-et a magyar.php-ban UTF-8-ra;
Átkonvertálni az instal mappában még TELEPÍTÉS ELŐTT a telepítő sql fájlt UTF-8-ra;
A telepítő sql fájlban az adabátzis egybevetést át kell írni latin-1-től UTF-8-ra;
Az adatbázis alap egybevetését (amikor létrehozod azt és még üres) álítsd utf-8-ra;
Adatbázis kapcsolatot ki kell egészíteni utf-8-ra (telepítőnél is);
Mindenhol ahol e-mailt küld a rendszer (akár admin, akár katalógus oldal) base64_encode-al küld a levelet utf-8 karakterkódolással;
Ha ez mind megvan akkor lesz teljes utf-8 karakterkódolással működő oldalad.
(Asszem nem hagytam ki semmit).
Üdv:
mala
|
|
|
|
Lustaság az evolúció motorja!
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 0
|
|
Nekem is hasonló a probléma csak az én serverem 8859-2 kódolásra van beállítva. amennyiben így szeretném elmenteni ezzel a kódolással a csv filet akkor az importáló számára értelmezhetetlen filet hoz létre. ha pedig utf8 kódolással készítem akkor jó a tördelés csak a magyar ékezetesek helyén ? található
előre is köszi a segíítséget
|
|
|
|
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 1
|
Sziasztok!
Nálam is hasonló a helyzet, de én szeretnék latin2_hungarian_ci nél maradni ha lehet. Vagy nagy baromság lenne?
Rengeteg oszloppal bővítettem ki a termék adatbázisomat, amihez még jó ideig nem akarok felhasználói (admin) felületet írni. Így csak az marad, ha közvetlenül az adatbázis táblákba írok mindent.
Én már átírtam mindent latin-ra a karakter kódolást is megoldottam a nyelvi file-oknál, csak egyszerűen, ha SQL-ből akarok kiolvasni cella adatokat az őŐ űŰ nem jelenik meg csak egy ? jel el. No meg a kereső sem szereti ezeket a betűket.
Autodidakta módon tanulok, szóval nem vagyok szakértő, de azt sem szeretném, hogy az SQL-em tele legyen mindenféle krix krax-al az UTF miatt.
Valami ötlet?
Előre is köszi mindenkinek, még akkor is ha a végén kiderül, hogy baromságra készülök. 
|
|
|
|
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 23
|
Az SQL adatbázis belső karakterkódolása és az illesztés két különböző dolog.
A belső adatbázisba írt karaktertábla akármi lehet, ami képes leírni az adott karaktert. Elképzelhető, hogy egy őŐ nem írható le csak HTMLENTITLES karakterekkel. Ezekkel az a baj, hogy az áruház belső keresője nincs felkészítve rá, tehát érdemes "natív" őŐ-t használni ami nem egyenértékű egy Õ vagy Õ %F5% stb... HTML karakter definícióval.
A magyar ékezeteket leírni képes Latin kódtáblák közép-európai nyelveket egyesítenek, ilyen a Latin-2. Ezekkel a kódtáblákkal az a baj, hogy korlátozott a felhasználhatóságuk, nem keverhető például egy görög nyelvkészlettel.
A Latin1 kódtáblában a swedish a nyugat-európai nyelvcsaládokkal jól használható, mivel megvan benne az őŐ űŰ is.
A latin 2 hungarian_ci kizárólag magyar szabvány, nincs szabványos kimenete az őŐ és űŰ-nek. (lásd HTML charset lent)
és így tovább...
Az UTF-8 alapkészlet lenne a legideálisabb, mert abban minden benne van, de az osC2-es alap verzió nem képes rá. Az osC3 már felkészült erre a problémára.
Lehet mindenféle karakterkészletet használni, csak az oldal HTML charset értékét annak megfelelően kell definiálni, hogy azt rendesen jelenítse meg a böngésző. Persze célszerű olyan kódtáblát használni, ami karakterszinten kompatibilisek mondjuk legalább egyezőek, vagy utf8.
|
|
|
|
Üdv,
tgely
V3, Master Products, Extra fields, Emails, STS, V3 bővítmények. Oscom.hu
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 1
|
|
Köszi a gyors választ!
Akkor laikus fordításban.
Használhatok latin2-t de akkor nem fog működni a keresőm?
Aztán 3 dologról beszélünk:
1. az ahogyan beírok az SQL-be ő ű betűket
2. van egy beállított karakterkészlet az SQL-be
3. milyen kódolást használok a HTML file-oknál
Mit tegyek?
Ha maradok utf8-nál (és ha valaki felhasználói felületen keresztül ír be valamit, mondjuk létrehoz egy termék csoportot) akkor az őű betűknél az SQL-ben mindenféle krix krax jelenik meg.
Ha beállítom (mint ahogyan tettem) az oscommerce-t latin2-re és minden HTML file-t is akkor ugyan az é á ó stb. betűk stimmelnek, csak az ő ű nem, és nem is megy a keresőm.
Ahogyan néztem a php myadmint ott most a karakterkészlet még UTF8. Ha ezt átállítom menni fog minden? És ezt hogyan tudom átállítani?
Vagy váltsak inkább OS 3-ra vagy az még gyerek cipőben van?
Előre is köszi
Üdv G.
|
|
|
|
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 23
|
1. Alapszabály: SQL adatbázisba nem írkálunk csak az áruházon keresztül.
Amennyiben profi vagy a karaktertáblákból, akkor tedd.
2. Az SQL illesztési szabvány felel az adatok transzportjáért. Ezen a nyelven "komunikál" az áruház és az SQL. Valójában minden input és output adatforgalom ezen a karaktertáblán definiált karakterkészlet megfeleltetésen zajlik.
pl: mondjuk ISO/IEC 8859-2 az adatbázis
ő karakterhelye F4 (hexa)
ha illesztésnek Latin -1-et jelölsz, azon a helyen ô (kalapos o) lesz
Az illesztési rutinok gondoskodnak a pontos konverzióról. Amennyiben nem konvertálható karakterekkel találkozik, akkor dobja be a jolit a "?" ("?"= mire gondoltál kisapám?).
Érdemes tehát mindkét helyen ugyanazt a táblát használni, hogy ne legyen belőle gond.
Ha nem így teszünk, akkor kaphatunk egy csomó hibát a konverzió során. Egy ilyen eset az őŐ űŰ is.
A konverziótransport után a HTML megjelenítő is "konvertál" a charset értéknek megfelelően.
A folyamatból kitűnik, hogy a legjobb, legpraktikusabb és a leggyorsabb dolog az lenne, ha minden mindenhol egyezik. Tehát nem kell konvertálgatni a karaktereket.
Kompatibilitás:
- utf8 karakter nem konvertálható vagy csak részben Latinra vagy ASCII-ra
- Latin karakter konvertálható Utf8-ra
- ASCII karakter konvertálható UTF8-ra és Latinra is
3. A mi áruházunk HTML charset értéke 8859-2 (Latin-2)
Nézz ide: hu.wikipedia.org/wiki/ISO/IEC_8859-2
A karaktertábla konverziók elkerülésére találta ki különböző HTML karaktereket, amelyek képesek "kódolva" leírni egy-egy speciális karaktert.
Amennyiben Ascii táblán szeretnél ő betűt, akkor van egy csomó encoder függvény a PHP-n belül is, ami megteremti az ASCII tábla és a speiális karakter között a kapcsolatot, és a böngésző meg is jeleníti.
pl:
base64 - ő : 9Q==
Quoted- Printable ő : =F5
uri ENCODE ő : %F5
html specials character
lowercase o, tilde õ
...
és így tovább.
Ha ilyen formákban tárolódik a szöveg, mert rossz a karaktertábla, akkor értelemszerűen nem működik jól az áruház keresője sem.
Összefoglalásképpen, annyit lehet leszűrni az egészből, hogy olyan karaktertáblát használjunk, ami képes leírni azokat a nyelveket, amelyeken az áruházunkat üzemeltetni kívánjuk.
(Távoli nyelvekre legjobb az UTF-8, közeli nyelvekre elég lehet Latin tábla is, csak angolra ASCII.)
Létezik UTF-8 karakterkészletű áruház, de magyarul nagyon kevés helyen működik.
Az osC3 képességeit már nem korlátozzák a karakterkészletek, de vannak más gondok pl: levélküldés, stb ami külön figyelmet igényel ebből a szempontból.
Más de lényeges karakterkorlát pl az URL, ami csak az ASCII tábla alapkészletét használhatja. Talán egyszer eljutunk oda, hogy ez sem lesz akadály, de akkor a POST és a GET utasítások is reformra szorulnak...
|
|
|
|
Üdv,
tgely
V3, Master Products, Extra fields, Emails, STS, V3 bővítmények. Oscom.hu
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 1
|
Köszi!
Most már mindent értek. De mit tegyek?
Valami megoldás kellene, mert az adatbázisba nem tudok máshogy (egyenlőre) beírni csak direkt (kivéve ott ahol van már rá felület).
De azt is megpróbálnám, hogy a MySQL-t állítanám át latin2-re és akkor minden ugyanazt használná. Erre van valami parancs vagy csak telepítéskor lehet megadni?
Köszi
G.
|
|
|
|
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 23
|
A baj az szokott lenni, hogy amit visszatöltünk, az nem Latin2 és elvesznek a karakterek.
Ha megnézed az oscommerce gyári setup fájljait, azok nem így néznek ki, mert Latin-1 illesztésekre (angol) készültek. Ezért használunk Latin_swedish_ci-t és nem Latin2 szabványt.
Értelem szerűen az áruházi admin mentések is Latin1-re kódolódnak. A helyes mentéshez át kell írni az áruház mentési eljárását Latin-2-re.
Így néz ki egy latin2 adatmentés tábla, amit vissza lehet tölteni, hogy jó legyen az őŐűŰ, de a félreértések elkerülése végett mala korábbi hozzászólásából kiderül a lényeg.
| Kód: |
-- phpMyAdmin SQL Dump
-- version 3.1.3.1
-- http://www.phpmyadmin.net
--
-- Hoszt: localhost
-- Létrehozás ideje: 2010. jan. 26. 21:55
-- Szerver verzió: 5.1.33
-- PHP verzió: 5.2.9-2
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Adatbázis: `uj`
--
-- --------------------------------------------------------
--
-- Tábla szerkezet: `teszt_latin2`
--
CREATE TABLE IF NOT EXISTS `teszt_latin2` (
`Leírás` varchar(100) COLLATE latin2_hungarian_ci NOT NULL,
KEY `első` (`Leírás`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_hungarian_ci;
--
-- A tábla adatainak kiíratása `teszt_latin2`
--
INSERT INTO `teszt_latin2` (`Leírás`) VALUES
('őűŐŰ');
|
|
|
|
|
Üdv,
tgely
V3, Master Products, Extra fields, Emails, STS, V3 bővítmények. Oscom.hu
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 1
|
Szia!
Lényegében akkor már csak annyi a dolgom, hogy ezt bemásolom egy file-ba? A telepítő file-t gondolom csak telepítéskor használjuk, vagy nem? Ha igen akkor újra kell telepítenem a rendszert?
Mint már mondtam nem vagyok szakértő ezért nekem a lépésről lépésre megoldások érthetőek (tudod mint a hülye gyereknek, vagy szőke nőnek)
Vagyis 1 lépés írjam át a telepítő file-t itt és ott
Aztán telepítsem.. és így tovább.
Az SQL parancsból csak az insert into értettem.
Mala hozzászólása alapján szerintem én itt tartok:
Át kell konvertálni az összes nyelvi fájlt UTF-8-ra; OK megvan
Átállítani a CHARSET-et a magyar.php-ban UTF-8-ra; OK megvan
Átkonvertálni az instal mappában még TELEPÍTÉS ELŐTT a telepítő sql fájlt UTF-8-ra; gondolom erről beszéltél
A telepítő sql fájlban az adabátzis egybevetést át kell írni latin-1-től UTF-8-ra; Ez most nálam UTF8 ezt hogyan tudom módosítani?
Az adatbázis alap egybevetését (amikor létrehozod azt és még üres) álítsd utf-8-ra; Ezt nem értem
Adatbázis kapcsolatot ki kell egészíteni utf-8-ra (telepítőnél is); és sajna ezt sem
Mindenhol ahol e-mailt küld a rendszer (akár admin, akár katalógus oldal) base64_encode-al küld a levelet utf-8 karakterkódolással; Egyáltalán lehet Latin2-vel e-mail-t küldeni a rendszeren keresztül?
Közben eszembe jutott, hogy ha van valakinek ötlete, hogy ki és hogyan tudná nekem az admin felületet bővíteni rövid idő alatt úgy, hogy az be tudjon írni az adatbázisomba az is lehet megoldás.
Köszi G.
|
|
|
|
|
|
|
Vá: Karakterkódolási hiba 2 éve
|
Karma: 23
|
|
Én már átírtam mindent latin-ra a karakter kódolást is megoldottam a nyelvi file-oknál, csak egyszerűen, ha SQL-ből akarok kiolvasni cella adatokat az őŐ űŰ nem jelenik meg csak egy ? jel el. No meg a kereső sem szereti ezeket a betűket.
Ezen mit értesz? Mondj egy példát, hogy olvasol?
|
|
|
|
Üdv,
tgely
V3, Master Products, Extra fields, Emails, STS, V3 bővítmények. Oscom.hu
|
|
|