Muszę wyczyścić ciąg przychodzący (kopiować/wklejane) z różnych aplikacji pakietu Microsoft Office (Excel, Access i Word), każdy z własnym zestawem kodowania.Mam ciąg znaków z " u00a0" i muszę go zastąpić przez "" str_replace ulega awarii
Używam json_encode do celów debugowania, aby móc zobaczyć każdą zakodowaną postać.
Jestem w stanie posprzątać wszystko, co znalazłem do tej pory (\ r \ n) z str_replace, ale z \ u00a0 Nie mam szczęścia.
$string = '[email protected]\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;[email protected]'; //this is the output from json_encode
$clean = str_replace("\u00a0", "",$string);
powraca:
[email protected]\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;[email protected]
to jest dokładnie to samo; całkowicie ignoruje \ u00a0.
Czy istnieje sposób obejścia tego? Poza tym, czuję, że wymyślam nowe koło, czy istnieje funkcja/klasa, która całkowicie usuwa KAŻDY możliwy znak KAŻDEGO możliwego kodowania?
____EDIT____
Po pierwszych dwóch odpowiedzi muszę wyjaśnić, że mój przykład nie działa, ponieważ jest to wyjście z json_encode, a nie rzeczywisty ciąg!
W twoim przykładzie to działa, ponieważ używasz wyjścia z js on_encode nie jest faktycznym ciągiem znaków! Jeśli skopiuję wklej mój kod, działa on idealnie nawet dla mnie. – 0plus1
Co stanie się, jeśli zastąpisz '\ xa0' zamiast' \ u00a0'? –
To się dzieje. Usuwa instancje \ u00a0 i po wydrukowaniu z json_encode wygląda dobrze, jednak jeśli echo ciąg bez zakodowania json, otrzymuję , gdzie wcześniej było \ u00a0. W tym momencie nie mogę zrozumieć, co się dzieje. Proszę, daj mi wyjaśnienie! :-) – 0plus1