Kezdőlap › Fórumok › Programozás › php, iconv, ssh, perl turmix. De hogyan?
- This topic has 32 hozzászólás, 6 résztvevő, and was last updated 17 years, 8 months telt el by
gabaman.
-
SzerzőBejegyzés
-
2007-10-10-00:57 #2134895ELaci wrote:A „LANG=ISO-8859-2” utasításként van végrehajtva, amiben gondolom megegyezhetünk.
A „LANG=” utasitásnak nem lehet paraméterként adni az, „idn –quiet ‘$humanDomainName” sztringet, mert annak semmi értelme.Rosszul tudod. A LANG=”ISO-8859-2″ egy értékadás egy környezeti változónak (environment variable), amely így az utána hívott program környezetébe át fog adódni, de a shell környezeti változói közé nem kerül be.
A fenti parancs hatására a következő történik:
1. Inicializálódik a idn parancs
2. A rendszer bemásolja a shell környezeti változóit a program környezeti változóinak
3. A LANG környezeti változó hozzáadódik/felülíródik a program változói közt.
4. A program elindul.Topicindító:
Ez a hibaüzenet:Code:idn: could not convert from ANSI_X3.4-1968 to UTF-8.nekem azt mondja, hogy a idn szeretné a paramétert UTF-fé alakítani.
Próbáltad már natív az UTF8-as szöveget elküldeni a idn-nek?
Biztos hogy a szerver ISO-8859-2 kódolást használ? Nekem nem úgy tűnik…2007-10-10-00:57 #2134896ELaci wrote:A „LANG=ISO-8859-2” utasításként van végrehajtva, amiben gondolom megegyezhetünk.
A „LANG=” utasitásnak nem lehet paraméterként adni az, „idn –quiet ‘$humanDomainName” sztringet, mert annak semmi értelme.Rosszul tudod. A LANG=”ISO-8859-2″ egy értékadás egy környezeti változónak (environment variable), amely így az utána hívott program környezetébe át fog adódni, de a shell környezeti változói közé nem kerül be.
A fenti parancs hatására a következő történik:
1. Inicializálódik a idn parancs
2. A rendszer bemásolja a shell környezeti változóit a program környezeti változóinak
3. A LANG környezeti változó hozzáadódik/felülíródik a program változói közt.
4. A program elindul.Topicindító:
Ez a hibaüzenet:Code:idn: could not convert from ANSI_X3.4-1968 to UTF-8.nekem azt mondja, hogy a idn szeretné a paramétert UTF-fé alakítani.
Próbáltad már natív az UTF8-as szöveget elküldeni a idn-nek?
Biztos hogy a szerver ISO-8859-2 kódolást használ? Nekem nem úgy tűnik…2007-10-20-13:47 #2134897Feladom!
A probléma újra előjött, és már a fenti hack sem jó megoldás.
Egy UTF-8 környezetben fut egy UTF-8 kódolású PHP program, egy UTF-8-as weboldalon apache szerveren (cgiként, ha ez számíthat).Code:print `/usr/bin/idn –quiet ‘ékezetes.hu’`A hiba ugyanaz, mint fent, de már semilyen LANG kombináció nem oldja meg:
Code:/usr/bin/idn: Could not convert from ANSI_X3.4-1968 to UTF-8.HELP MEEEEE !!!!
2007-10-20-13:47 #2134898Feladom!
A probléma újra előjött, és már a fenti hack sem jó megoldás.
Egy UTF-8 környezetben fut egy UTF-8 kódolású PHP program, egy UTF-8-as weboldalon apache szerveren (cgiként, ha ez számíthat).Code:print `/usr/bin/idn –quiet ‘ékezetes.hu’`A hiba ugyanaz, mint fent, de már semilyen LANG kombináció nem oldja meg:
Code:/usr/bin/idn: Could not convert from ANSI_X3.4-1968 to UTF-8.HELP MEEEEE !!!!
2007-10-20-14:27 #2134899Nem lenne jobb ezt még a PHP-val (iconv) átkonvertálni és úgy elküldeni??
Miért?:
Az UTF-8 egy 3byte hosszú karakter kód, míg az ISO-8859-2 2byte hosszú, két byteon 3byteot nem lehet ábrázolni, hiba nélkül, szóval a PHP-val alakítgasd a karakter kódolást és küld el a másik gépnek (az a másik gép nem IIS -t futtat véletlen?)2007-10-20-14:27 #2134900Nem lenne jobb ezt még a PHP-val (iconv) átkonvertálni és úgy elküldeni??
Miért?:
Az UTF-8 egy 3byte hosszú karakter kód, míg az ISO-8859-2 2byte hosszú, két byteon 3byteot nem lehet ábrázolni, hiba nélkül, szóval a PHP-val alakítgasd a karakter kódolást és küld el a másik gépnek (az a másik gép nem IIS -t futtat véletlen?)2007-10-20-14:36 #2134901Köszönöm, de ez az első próbálkozásaim közt szerepelt, bár utf8 terminálon utf8 karaktereket gépelve rendben lefut az idn.
De konvertáltam én iconv-val mindenhová, mégsem ment. Ha utf8 gép előtt ülsz, ki is próbálhatod. Gyanítom, Neked sem fog menni.
Mellesleg csak a probléma elején volt két gépes az eset. Most már egy azon gépen is jelentkezett a probléma, mint ezt az előző hozzászólásban jeleztem is. Épp ezért akadtam ki, mert a két gépnél, még lehetett volna kenni ide vagy oda a dolgot, de itt már egyazon rendszerben hal meg.
Félek, az idn kavar be, bár nem értem, miért …2007-10-20-14:36 #2134902Köszönöm, de ez az első próbálkozásaim közt szerepelt, bár utf8 terminálon utf8 karaktereket gépelve rendben lefut az idn.
De konvertáltam én iconv-val mindenhová, mégsem ment. Ha utf8 gép előtt ülsz, ki is próbálhatod. Gyanítom, Neked sem fog menni.
Mellesleg csak a probléma elején volt két gépes az eset. Most már egy azon gépen is jelentkezett a probléma, mint ezt az előző hozzászólásban jeleztem is. Épp ezért akadtam ki, mert a két gépnél, még lehetett volna kenni ide vagy oda a dolgot, de itt már egyazon rendszerben hal meg.
Félek, az idn kavar be, bár nem értem, miért …2007-10-20-15:08 #2134903kayapo wrote:Az UTF-8 egy 3byte hosszú karakter kód, míg az ISO-8859-2 2byte hosszúAz UTF-8 egy 1-5 byte hosszú (változó hosszúságú) karaktereket használó kódolás, ami képes a 32 bites unicode karaktereket ábrázolni (elméletileg több mint 4 milliárd karaktert). Az ISO-8859-2 1 (egy) byte hosszú 256 karaktert ábrázoló kódolás.
linuxforum wrote:A probléma újra előjött, és már a fenti hack sem jó megoldás.
Egy UTF-8 környezetben fut egy UTF-8 kódolású PHP program, egy UTF-8-as weboldalon apache szerveren (cgiként, ha ez számíthat).Code:print `/usr/bin/idn –quiet ‘ékezetes.hu’`A hiba ugyanaz, mint fent, de már semilyen LANG kombináció nem oldja meg:
Code:/usr/bin/idn: Could not convert from ANSI_X3.4-1968 to UTF-8.A LANG nem (csak) a karakter kódolást állítja be. Rosszul adtad meg (helyesen: LANG=”hu_HU.ISO-8859-2″). Viszont nem olvastad el a „man idn”-t, ezért nem tudod, hogy a CHARSET-et kell megadni.
All strings are expected to be encoded in the preferred charset used by your locale. Use ‘–debug’ to find out what this charset is. You can override the charset used by setting environment variable CHARSET.
Tehát:
Code:my $realDomainName=`CHARSET=”ISO-8859-2″ idn –quiet ‘$humanDomainName’`;2007-10-20-15:08 #2134904kayapo wrote:Az UTF-8 egy 3byte hosszú karakter kód, míg az ISO-8859-2 2byte hosszúAz UTF-8 egy 1-5 byte hosszú (változó hosszúságú) karaktereket használó kódolás, ami képes a 32 bites unicode karaktereket ábrázolni (elméletileg több mint 4 milliárd karaktert). Az ISO-8859-2 1 (egy) byte hosszú 256 karaktert ábrázoló kódolás.
linuxforum wrote:A probléma újra előjött, és már a fenti hack sem jó megoldás.
Egy UTF-8 környezetben fut egy UTF-8 kódolású PHP program, egy UTF-8-as weboldalon apache szerveren (cgiként, ha ez számíthat).Code:print `/usr/bin/idn –quiet ‘ékezetes.hu’`A hiba ugyanaz, mint fent, de már semilyen LANG kombináció nem oldja meg:
Code:/usr/bin/idn: Could not convert from ANSI_X3.4-1968 to UTF-8.A LANG nem (csak) a karakter kódolást állítja be. Rosszul adtad meg (helyesen: LANG=”hu_HU.ISO-8859-2″). Viszont nem olvastad el a „man idn”-t, ezért nem tudod, hogy a CHARSET-et kell megadni.
All strings are expected to be encoded in the preferred charset used by your locale. Use ‘–debug’ to find out what this charset is. You can override the charset used by setting environment variable CHARSET.
Tehát:
Code:my $realDomainName=`CHARSET=”ISO-8859-2″ idn –quiet ‘$humanDomainName’`; -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz