Ja i przyjaciel żartowaliśmy z alepha. Próbując wpisać א 0 (zamienić te 2 znaki), zmienili się! Żadna sekwencja symboli nie zatrzymuje tego efektu. Dlaczego to!??
Spróbuj wpisać je z odwrotnością 0 i א (c & p dla א):
א 0
א - 0
0 \\\ 0
א -. / 0
Słowa je jednak rozdzielają
א foobar 0
Jestem na arch. Linuxie i jeszcze nie testowałem tego na żadnym innym systemie operacyjnym
EDYCJA: Liczba nie musi wynosić zero. Działa z cyframi, ale nie z literami.
ב-5 דקות
(za 5 minut).Odpowiedzi:
„א”, „HEBREW LETTER ALEF” (U + 05D0) ma klasę BIDI (dwukierunkową) „Right-to-Left [R]”, ponieważ hebrajski jest tradycyjnie pisany od prawej do lewej. Z drugiej strony cyfry nie mają przypisanej określonej kierunkowości, więc cały fragment aleph i zero jest interpretowany jako od prawej do lewej. W takim przypadku następujący znak niekoniecznie musi znajdować się po prawej stronie poprzedniego znaku, jak nakazują dość złożone dwukierunkowe reguły Unicode.
Masz kilka opcji obejścia tego problemu.
Możesz użyć „ℵ”, „ALEF SYMBOL” (U + 2135) . Jest to symbol i ma właściwość od lewej do prawej: ℵ0.
Zamiast zwykłej cyfry
0
można użyć znaku zerowego z kierunkowością od lewej do prawej, na przykład „〇”, „NUMER IDEOGRAFICZNY ZERO” (U + 3007) .Najczystszym sposobem jest użycie znaku „LEFT-TO-RIGHT MARK” (U + 200E) ( Wikipedia ) po alefie: „א 0”. Jest to niewidoczny znak zerowej szerokości, który jest zdefiniowany tak, aby miał kierunkowość od lewej do prawej. Tak więc ma taki sam wpływ na algorytm dwukierunkowego układu tekstu, jak wstawienie, powiedzmy, litery łacińskiej od lewej do prawej po א, z tym wyjątkiem, że nie pojawi się tam widoczna litera.
źródło
U+202C
), gdy kontekst, na którym chcesz operować, zostanie zakończony.Aleph ( U + 05D0 ) to hebrajska litera, a hebrajski jest pisany od prawej do lewej, więc Unicode przypisuje mu dwukierunkową klasę „od prawej do lewej”. (Aby uzyskać więcej informacji, zobacz Unicode TR9: Dwukierunkowy algorytm ).
Litery łacińskie są oczywiście „od lewej do prawej”. Jednak zero ( U + 0030 ) znajduje się w dwukierunkowej klasie „Numer europejski”, która jest klasą słabą - podczas gdy LtR domyślnie może przełączyć się na RtL, jeśli jest przed nim „silna” postać od prawej do lewej. (Patrz Dwukierunkowe typy znaków i rozwiązywanie słabych typów w TR9.)
W rezultacie kierunki przed i po są zamieniane na całe słowo - jeśli ustawisz zero na „przed”, pojawi się ono po prawej stronie; jeśli napiszesz zero „po” aleph, pojawi się po lewej stronie.
źródło
0
jest używany zarówno przez języki LTR, jak i RTL, a więc oprogramowanie po prostu nadaje mu ten sam kierunek co poprzednia litera. Jeśli występuje po znakach LTR, jest to LTR. Jeśli następuje po literach RTL, to RTL. Istnieją również przesłonięcia, aby zamienić. fileformat.info/info/unicode/char/202d/index.htmByć może lepszym sposobem na osiągnięcie tego byłoby:
I obowiązkowe odniesienie xkcd https://xkcd.com/1137/
źródło
Jest całkowicie możliwe, aby mieć zero z przodu, jak pokazano w poniższym przykładzie, który został wykonany w Notepad ++.
To, co widzisz, a także staje się oczywiste, gdy spróbujesz oznaczyć znak w pytaniu, to to, że hebrajski jest pisany od prawej do lewej i (ponieważ 0 jest bezpośrednio połączone) tekst jest obsługiwany od prawej do lewej (zamiast lewej) w prawo) sposób.
Zobacz drugi przykład problemów, jakie ma Firefox (z mojej strony) z wyraźnym wyborem.
źródło
Hebrajski jest pisany od prawej do lewej - to sprawia, że znak aleph zawiera informację, że następny znak powinien być wydrukowany po lewej stronie .
Jeśli sprawdzasz szesnastkowo dokument (lub przesuwasz kursor po tekście za pomocą klawiszy strzałek w odpowiednim edytorze), zauważysz, że najpierw przejdziesz do alpeh, a potem do cyfry.
Tj .: założenie „następny znak == znak po prawej stronie” nie ma zastosowania.
źródło
Problem polega na tym, gdzie to robisz, i na implementacji. Aby uzyskać zachowanie liczby hebrajskiej, wszystkie znaki muszą mieć kierunek od prawej do lewej. W HTML / CSS jest to:
W systemie operacyjnym należy włączyć hebrajski i dwukierunkowy.
Obejścia tego problemu, sugerując użycie innych znaków jako zamienników, pokonują cel Unicode. Aleph jako operator matematyczny może wyglądać tak samo w niektórych zestawach znaków, ale jest zupełnie inną postacią niż hebrajski aleph, zarówno w kontekście, jak i w jaki sposób zostanie przeanalizowany. Na przykład język hebrajski mówiący / komputer nie przetworzy go poprawnie, jeśli zostanie użyty w połączeniu ze słowem hebrajskim. Liczby i znaki inne niż alfa stanowią problem, gdy same nie są kodowane w taki sam sposób, jak znaki alfanumeryczne. Tak więc, jak na ironię, same liczby, choć pozornie powinny być niezależne od zestawu znaków / kierunkowości, przyjmują dowolną kierunkowość Unicode poprzedniej litery. Tak więc w hebrajskim dokumencie - liczby stają się „hebrajskie”, tj. Kierunkowo podobne do hebrajskiego. Mając na uwadze, że dokument angielsko-łaciński,
źródło
To jest możliwe:
א 0
א - 0
א \\ 0
א -. / 0
א foobar 0
(Ta odpowiedź nie odpowiedziała „dlaczego to jest”, ponieważ jest już udzielona przez innych. Ale odpowiada na pytanie w tytule „niemożliwe do…?”)
źródło