Autor | Zpráva | ||
---|---|---|---|
logic Profil * |
#1 · Zasláno: 18. 4. 2012, 23:16:00 · Upravil/a: logic
Ahoj.
Když chci změnit string s diakritikou v kódování 1250, jaký kód musím zapsat místo UTF-8? mb_internal_encoding("UTF-8"); A když chci použít mb_ereg_replace ( string $pattern , string $replacement , string $string) Ještě jedna otázka. Nevíte v jakém kódovaní se načítají soubory ve Windows? Například slovo "Třebíč" se zobrazuje jako "T�eb��". Jak tedy převést toto slovo, abych ho mohl zapsat do souboru v kodovani windows 1250? |
||
Alphard Profil |
#2 · Zasláno: 19. 4. 2012, 00:08:13
ereg_* rodina se bude rušit, té se vyhněte. Použijte preg_replace a modifikátor u.
Nejčastější potíže s PHP (FAQ) » Regulární výrazy Práci se soubory ve cp1250 bych se snažil vyhnout, nejlépe asi přečíst, překódovat do utf a nechat v něm. |
||
logic Profil * |
#3 · Zasláno: 19. 4. 2012, 00:30:33
No ale v kterém kódování je název souboru? Win1250 to není protože soubor je v 1250 a zobrazuje se mi diakritika správně. Kdežto název souboru se zobrazuje špatně. Je to tedy UTF-8? A jak převést UTF-8 (název souboru) na cp1250?
|
||
Alphard Profil |
#4 · Zasláno: 19. 4. 2012, 00:32:45
Pro převádění je funkce iconv().
|
||
logic Profil * |
#5 · Zasláno: 19. 4. 2012, 00:39:38
Dobře už to používám, ale
iconv ( "UTF-8", "cp1250", $file); Notice: iconv() [function.iconv]: Detected an illegal character in input string in ... Měl bych vyescapovat některé znaky? |
||
Alphard Profil |
#6 · Zasláno: 19. 4. 2012, 07:07:15
Ve FAQ je mj. u odesílání mailů uvedena funkce autoUTF(), zkuste je použít.
|
||
Šéva Profil * |
#7 · Zasláno: 19. 4. 2012, 09:52:02
Ahoj
iconv ( "UTF-8", "windows-1250", $file); |
||
logic Profil * |
#8 · Zasláno: 19. 4. 2012, 10:37:12
Díky oběma. Zabralo AutoUtf a příkaz
iconv('ISO-8859-2', 'UTF-8', $s); |
||
Davex Profil |
#9 · Zasláno: 19. 4. 2012, 17:58:34
logic:
„To mě docela překvapilo, že název souboru je v latin-2. Je pro to nějaké vysvětlení?“ Kódování Windows 1250 se liší od ISO 8859-2 v umístění třech znaků - š, ť a ž. Pokud je jméno souboru neobsahuje, tak se detekuje ISO 8859-2. |
||
logic Profil * |
#10 · Zasláno: 20. 4. 2012, 15:22:46
Celé jsem to domotal. Výstupní dokument je v UTF-8 a ne v cp-1250. Tak nakonec je správně toto:
$file_conv = iconv('WINDOWS-1250', 'UTF-8', $file); Měl jsem problém se zobrazováním š a ž. |
||
logic Profil * |
#11 · Zasláno: 22. 4. 2012, 13:49:04
Celou dobu jsem si myslel že str_replace mi funguje. No a když použiju ten preg_replace:
preg_replace("/".preg_quote($original_line)."/u"," ".preg_quote($newline),$contents); Dostávám chybu:Unknown modifier 'c' Může mi někdo vysvětlit co dělám špatně? |
||
logic Profil * |
#12 · Zasláno: 22. 4. 2012, 15:21:31
Jednu chybu jsem už odstranil, ale stále mi to zkracuje text:
$contents = preg_replace("*".preg_quote($original_line)."*u"," ".$newline,$contents); |
||
logic Profil * |
#13 · Zasláno: 22. 4. 2012, 19:37:57
Tak jsem zjistil, že
$contents = preg_replace("@".preg_quote($original_line)."@su"," ".$newline,$contents); Ale $contents = mb_ereg_replace("@".preg_quote($original_line)."@"," ".$newline,$contents,"m"); |
||
Časová prodleva: 12 let
|
0