Mam przypadki, w których dane wprowadzane przez użytkownika z textarea HTML lub danych wejściowych są czasami wysyłane z \u00a0
(spacje nierozdzielające) zamiast spacji, gdy są zakodowane jako json utf-8.Konwertuj niepodzielone spacje na spacje w Rubim
Uważam, że jest to błąd w Firefoksie, ponieważ wiem, że użytkownik nie zamierza celowo wprowadzać spacji nie zamiast spacji.
Istnieją również dwa błędy w Ruby, z których jeden może być użyty do walki z drugim.
Z jakiegokolwiek powodu \s
nie pasuje do \u00a0
.
Jednak [^[:print:]]
, które zdecydowanie nie powinny się zgadzać) i \xC2\xA0
oba będą pasować, ale uważam, że są to mniej niż idealne sposoby radzenia sobie z problemem.
Czy istnieją inne zalecenia dotyczące obejścia tego problemu?
Która wersja Ruby? W wersji 1.9.2/\ u00a0/pasuje. – steenslag
\ s nie pasuje \ u00a0 \ u00a0 mecze w 1.9, ale nie jestem pewien o 1.8 – CoolAJ86
Zasada # 1: Gdy uważasz, że znalazłeś błąd w bardzo popularnym programie, zwłaszcza w coś, co jest testowane i szeroko stosowane, takie jak obsługa tekstur Firefoksa, bardzo cicho i starannie przechodzą testy. 99 razy na 100 problem będzie po twojej stronie płotu. Kiedy widzę spacje nierozdzielające się w polu tekstowym, gdzie prawdopodobnie wkleją tekst, podejrzewam, że Microsoft Word lub edytor ustawiony jako zastępujący   dla spacji. Możesz łatwo sprawdzić swoją teorię, tworząc stronę, umieść w niej obszar tekstowy i spróbuj zduplikować problem. –