PHP strlen('ů') je 2

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
arxeiss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 19. črc 2008
Bydliště: Krmelín (předměstí Ostravy)
Kontaktovat uživatele:

PHP strlen('ů') je 2

Příspěvek od arxeiss »

Mám problém. V jednom skriptu potřebuju převést písmena na ASCII kód. Ovšem když převedu např text 'něco' tak mi o vrátí 5x ASCII daného písmene, ale 'ě' to bere jako 2 písmena, i přesto že v ASCII je přímo kód pro 'ě' stejně jako pro 'ů'
Mohl by někdo pomoct please?

Edit:\\ Když např napíšu

Kód: Vybrat vše

$text = "ů";
echo $text[0].$text[1];
tak to vypíše 'ů',
jakmile ale mezi to vložím třeba mezeru tak mi to vyhodí 2x ?
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: PHP strlen('ů') je 2

Příspěvek od OndraSter »

Pouzij mb_strlen, nebot u (sry, nemam ty ted diakritiku) jsou normalne za klasickym ascii.PHP pouziva utf, kde na tyto znaky (i v jinych, ale dnes se vsude tlaci utf) kde jsou tyto spesl znaky na 2B, schvalne napis u s krouzkem v notepadu, uloz jako utf a uvidis, ze bude mit 2B a pres hexeditor uvidis jednotlive casti.


Pro texty v utf se v php pouzivaji mb_ funkce (tzn mb_strlen, mb_substr atd)
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
arxeiss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 19. črc 2008
Bydliště: Krmelín (předměstí Ostravy)
Kontaktovat uživatele:

Re: PHP strlen('ů') je 2

Příspěvek od arxeiss »

Teď jsem přišel na to že když to předělám do CP1250 tak to hodí správně. Ale stejně ani to mb_strlen nefičí
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: PHP strlen('ů') je 2

Příspěvek od OndraSter »

mb_strlen("ů", 'UTF-8'); mi vrací číslo 1 8-)

Samotné mb_strlen("ů") však dva... kdoví, jak to PHP kompilují, jestli ono to není přecijen na latin1 namísto UTF8... Kdoví, PHP je balast nejvyššího kalibru. Myslel jsem, že to je UTF8 či UTF16... Hmm tak asi ne no :D
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
arxeiss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 19. črc 2008
Bydliště: Krmelín (předměstí Ostravy)
Kontaktovat uživatele:

Re: PHP strlen('ů') je 2

Příspěvek od arxeiss »

aha, díky.
Ale stejně, toto mi tak trochu pomohlo max k tomu že znám skutečnou délku. Ovšem nezjistím skutečný ASCII kód toho 'ů' apod...
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: PHP strlen('ů') je 2

Příspěvek od OndraSter »

PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
arxeiss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 19. črc 2008
Bydliště: Krmelín (předměstí Ostravy)
Kontaktovat uživatele:

Re: PHP strlen('ů') je 2

Příspěvek od arxeiss »

super, 'ů' je prý 345 ;)
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
Odpovědět

Zpět na „Programování a web“