Ben "\ u00a0" ile dize var

5 Cevap php

Ben çeşitli ofis paketi (excel, erişim, kelime) kodlama kendi seti ile her gelen (kopya / yapıştırılan) gelen bir dize temizlemek gerekir.

Ben her kodlanmış karakteri görmek için edememek için hata ayıklama amacıyla json_encode kullanıyorum.

Ben str_replace ile şimdiye kadar bulunan her şeyi (\ r \ n) temizlemek için mümkün, ama \ u00a0 ile şansım yok.

$string = 'mail@mail.com\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;mail@mail.com'; //this is the output from json_encode

$clean = str_replace("\u00a0", "",$string);

döner:

mail@mail.com\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;mail@mail.com

o tamamen \ u00a0 sayar, tam olarak aynıdır.

Ayrıca ben tamamen HER olası kodlama HER Possibile karakter soyarak herhangi bir fonksiyon / sınıf var, ben tekerleği yeniden icat ediyorum hissediyorum Bu etrafında bir yolu var mı?

Zaman ayırdığınız için teşekkür ederiz.

_ EDIT _

İlk iki cevaplardan sonra ben json_encode gelen çıkış gerçek bir dize değil, çünkü benim örnek çalışması olmadığını açıklığa kavuşturmak gerekir!

_ EDIT _

5 Cevap

Benim için çalışıyor, ben kopyalarken / kodunuzu yapıştırın. Tek tırnak ile str_replace() içinde çift tırnak değiştirerek veya ters eğik çizgi kaçan deneyin ("\\u00a0").

\ U00a0 içeren benim dize substr() ile ord() birleştirerek, işe şu laneti bulundu:

$text = str_replace( chr( 194 ) . chr( 160 ), ' ', $text );

Ben sadece görünüşte PHP'nin json_encode içinde bir 'bölünemez boşluk' ile herhangi bir dize null dönecektir, aynı problem vardı.

Solution is to replace this with a regular space: str_replace(chr(160),' ');

Bu birileri yardımcı olur umarım - anlamaya bana bir saat sürdü.

Böyle ateşten tırnak ile bunu yapmak zorunda:

str_replace('\u00a0', "",$string);

çift ​​tırnak kullanmak isterseniz ya, hou ters eğik çizgi kaçmak zorunda - wich bu gibi görünecektir:

str_replace("\\u00a0", "",$string);

Bir küçük nokta: \ u00a0 aslında bölünemez boşluk karakteri, cf http://www.fileformat.info/info/unicode/char/a0/index.htm

Bu yüzden "" ile değiştirmek daha doğru olabilir