เป็นไปไม่ได้ที่จะใส่ศูนย์หลังจากเบียร์หรือไม่?


144

ฉันและเพื่อนกำลังล้อเล่นเกี่ยวกับของ aleph เมื่อพยายามพิมพ์א 0 (สลับทั้งสองตัวอักษร) พวกเขาจะเปลี่ยนเอง! ลำดับของสัญลักษณ์ใด ๆ ไม่ได้หยุดผลกระทบนี้ ทำไมเป็นอย่างนี้!

ลองพิมพ์สิ่งเหล่านี้ด้วยการย้อนกลับเป็น 0 และא (c & p สำหรับא):

א 0

א - 0

א \\\ 0

א -. / 0

อย่างไรก็ตามคำแยกพวกเขา

א foobar 0

ฉันใช้งานบน linux arch และยังไม่ได้ทดสอบบนระบบปฏิบัติการอื่น

แก้ไข: หมายเลขไม่จำเป็นต้องเป็นศูนย์ มันใช้งานได้กับตัวเลข แต่ไม่ใช่ตัวอักษร


14
ฉันคิดว่าคุณบ้าไปแล้ว ปรากฎว่ามันเป็นเพียงสิ่งประดิษฐ์ของวิธีการใช้ภาษาที่แตกต่างกัน เป็นคำถามที่ดีมาก!

6
สำหรับการเขียนข้อความภาษาฮิบรูคำสั่งนี้สมเหตุสมผล ไม่อย่างนั้นมันน่ารำคาญที่สุดที่จะพิมพ์สิ่งที่ชอบב-5 דקות(ภายใน 5 นาที)
ugoren

7
@jamesqf: และมีอยู่ให้ดูโพสต์ของ IllidanS4
grawity

28
@jamesqf มีตัวอักษรภาษาฮิบรูอยู่ใน Unicode สำหรับการเขียนภาษาฮิบรู และฉันกล้าบอกว่ามีพวกเราเขียนฮีบรูมากกว่า 7 ล้านคนมากกว่าผู้ที่เขียนเกี่ยวกับคาร์ดินัล
ugoren

27
@ugoren โดยบางส่วนมีนักคณิตศาสตร์ 130kแต่ในความจริงแล้วคณิตศาสตร์เป็นภาษาสากลดังนั้นจึงมีℵ₀จริงๆ
Nick T

คำตอบ:


111

'א', 'HEBREW LETTER ALEF' (U + 05D0)มีคลาส BIDI (สองทิศทาง) "จากขวาไปซ้าย [R]" เนื่องจากภาษาฮิบรูเขียนตามแบบดั้งเดิมจากขวาไปซ้าย ในทางกลับกันตัวเลขไม่ได้มีการกำหนดทิศทางที่เฉพาะเจาะจงให้กับพวกเขาดังนั้นทั้งกลุ่มของ aleph และศูนย์จะถูกตีความว่าเป็นจากขวาไปซ้าย ในกรณีนี้อักขระต่อไปนี้อาจไม่จำเป็นต้องอยู่ทางด้านขวาของอักขระก่อนหน้าเนื่องจากกฎสองทิศทางที่ค่อนข้างซับซ้อนของ Unicode กำหนดไว้

คุณมีหลายตัวเลือกในการแก้ไขปัญหานี้

  1. คุณสามารถใช้'ℵ', 'ALEF SYMBOL' (U + 2135) มันเป็นสัญลักษณ์และมีคุณสมบัติจากซ้ายไปขวา: ℵ0

  2. แทนที่จะเป็นหลักปกติ0คุณสามารถใช้ตัวอักษรเป็นศูนย์เช่นเดียวกับทิศทางซ้ายไปขวาเช่น' 〇 ', 'ideographic จำนวน ZERO' (U + 3007)

  3. วิธีที่สะอาดที่สุดคือการใช้อักขระ'ซ้ายไปขวาเครื่องหมาย' (U + 200E) ( Wikipedia ) หลัง aleph: "א 0" นี่เป็นอักขระที่มีความกว้างเป็นศูนย์ที่มองไม่เห็นซึ่งถูกกำหนดให้มีทิศทางจากซ้ายไปขวา ดังนั้นจึงมีผลเช่นเดียวกันกับอัลกอริธึมเลย์เอาต์ข้อความสองทิศทางเป็นการแทรกพูดตัวอักษรละตินจากซ้ายไปขวาหลังאยกเว้นว่าจะไม่มีตัวอักษรที่มองเห็นปรากฏขึ้นที่นั่น


69
ในบริบททางคณิตศาสตร์ (ซึ่งฉันคาดหวังว่านี่คือ) U + 2135 เป็นตัวละครที่ถูกต้องที่จะใช้
cmbuckley

10
คุณจะต้องระมัดระวังในการแทนที่ - ที่คุณวางไว้ในข้อความมันเป็นสิ่งสำคัญที่จะลบพวกเขา (ใช้ตัวอักษร "การจัดรูปแบบทิศทางป๊อป" U+202C) เมื่อบริบทที่คุณต้องการให้พวกเขาทำงานให้เสร็จสมบูรณ์
เจ ...

4
นอกจากนี้อักขระ "แทนที่" เป็นชนิดของการ overkill "ฝัง" ก็เพียงพอสำหรับกรณีการใช้งานนี้ นอกจากนี้ยังมีคลาสใหม่ที่เรียกว่า "แยก" ไม่แน่ใจว่าความแตกต่างคืออะไรในสถานการณ์นี้
Random832

4
ฉันขอแนะนำให้สลับ 2 และ 3
wizzwizz4

10
@ Random832 ทุกคนมีทักษะมากไป สิ่งที่คุณต้องการจริงๆคือเครื่องหมายจากซ้ายไปขวา (U + 200E) ระหว่าง alef และศูนย์ ด้วยวิธีนี้คุณไม่จำเป็นต้องมีอักขระ "ป๊อป" เพิ่มเติมอีกด้วย
Ilmari Karonen

198

Aleph ( U + 05D0 ) เป็นตัวอักษรภาษาฮิบรูและภาษาฮิบรูเขียนจากขวาไปซ้ายดังนั้น Unicode จึงกำหนดให้เป็นแบบสองทิศทาง "ขวาไปซ้าย" (ดูUnicode TR9: อัลกอริทึมแบบสองทิศทางสำหรับรายละเอียดเพิ่มเติม)

แน่นอนตัวอักษรละตินเป็น "จากซ้ายไปขวา" อย่างไรก็ตามศูนย์ ( U + 0030 ) อยู่ในคลาสแบบสองทิศทาง "หมายเลขยุโรป" ซึ่งเป็นคลาสที่อ่อนแอ - ในขณะที่ LtR โดยค่าเริ่มต้นมันสามารถสลับไปที่ RtL หากมีอักขระ "ขวา" จากซ้ายไปขวาก่อนหน้านี้ (ดูประเภทอักขระสองทิศทางและการแก้ไขประเภทจุดอ่อนใน TR9)

ดังนั้นทิศทางของก่อนและหลังจะถูกสลับทั้งคำ - ถ้าคุณใส่ศูนย์ 'ก่อน' มันจะปรากฏขึ้นทางด้านขวา หากคุณเขียน 'ศูนย์' หลังจาก 'aleph มันจะปรากฏขึ้นทางด้านซ้าย


14
นี่เป็นปัญหาที่พบบ่อยอย่างมากในเครื่องมือแก้ไขข้อความและเว็บไซต์จำนวนมากเมื่อพิมพ์ในภาษาฮิบรู - ฉันคิดว่ามันเป็นเรื่องจริงสำหรับภาษาอื่นจากขวาไปซ้ายเช่นกัน อากาศมันมีแน่นอนดีตลอดเวลา แต่คิดพยายามเขียนปัญหาคำ - สลับไปมาระหว่างคำภาษาฮิบรู (ชอบตัวละคร aleph) และตัวเลข (เช่น 0 ตัวอักษร) ซ้ำ ๆ ...
เจค

3
@ วอลล์ตำราเรียนส่วนใหญ่ที่ฉันเคยเห็นคือประเภท "การจุ่ม" ซึ่งใช้ภาษาฮิบรูอย่างง่าย ๆ อาจใช้วิธีสอนภาษาในการสอนภาษาได้ แต่อาจช่วยให้คุณมีทักษะทางภาษาเพิ่มมากขึ้น คุณอาจเห็นทับศัพท์หรือแบบอินไลน์การแปล (บางอย่างเช่นlh4.ggpht.com/-_Vc8TUDwznQ/UlhaLFjnrGI/AAAAAAAAzQk/_zm4BMC0aLw/... - "ชะโลม Kita Aleph" = "สวัสดีชั้นแรก")
เจค

1
@ Jake Ah ที่เหมาะสม ภาษาต่างประเทศเพียงภาษาเดียวที่ฉันใช้คือละติน ตำราของเรามักจะเป็นภาษาอังกฤษโดยส่วนใหญ่จะมีตัวอักษรละตินหนึ่งตัวเพื่อถอดรหัสแต่ละบทจนกระทั่งจนกระทั่งรูปแบบของคลาสทั้งหมดเปลี่ยนจาก "เรียนรู้ภาษาละติน" เป็น "แปลบทกวีมหากาพย์ครั้งนี้ทั้งหมดในแต่ละครั้งผ่านหลักสูตร ปีการศึกษา "
Tin Man

5
@ วอลล์: ฉันคิดว่าอาจมีความเข้าใจผิด หากฉันพิมพ์คำ latin (LTR) จากนั้นเป็นคำภาษาฮิบรู (RTL) จากนั้นอีกคำละตินฉันสามารถให้พวกเขาทั้งหมดได้อย่างอิสระในประโยคและมีเพียงคำภาษาฮิบรูที่แสดง RTL มันถูกออกแบบมาเพื่อให้พอดีกับประโยคเดียวกันได้อย่างง่ายดาย ปัญหาคือหมายเลข0นั้นถูกใช้ทั้งภาษา LTR และ RTL ดังนั้นซอฟต์แวร์จึงทำให้มันเป็นไปในทิศทางเดียวกันกับตัวอักษรก่อนหน้า หากเป็นไปตามอักขระ LTR ก็คือ LTR ถ้าเป็นไปตามตัวอักษร RTL มันเป็น RTL นอกจากนี้ยังมีการแทนที่เพื่อสลับ fileformat.info/info/unicode/char/202d/index.htm
Mooing Duck

4
ศูนย์ไม่ได้กลายเป็น RTL - ยังคงเป็น LTR และลำดับตัวเลขจะแสดงจากซ้ายไปขวาแม้กับฮีบรูรอบ ๆ แต่ระดับการฝังจะโต้ตอบในลักษณะที่ศูนย์ปรากฏขึ้นทางด้านซ้ายของ อักขระภาษาฮิบรูอยู่ข้างหน้าตามลำดับหน่วยความจำ (การกำหนดทิศทางแบบ Unicode มีความซับซ้อน)
user2357112

20

บางทีวิธีที่ดีกว่าในการบรรลุเป้าหมายนี้คือ:

echo -e "\u200F0א"

และการอ้างอิงที่จำเป็นต้องมี xkcd https://xkcd.com/1137/

LTR


14

เป็นไปได้อย่างสมบูรณ์แบบที่จะมีศูนย์ด้านหน้าตามที่แสดงในตัวอย่างต่อไปนี้ซึ่งทำใน Notepad ++

Alef ด้วย 0

สิ่งที่คุณเห็นและชัดเจนถ้าคุณพยายามทำเครื่องหมายตัวอักษรในคำถามของคุณคือฮิบรูเขียนจากขวาไปซ้ายและ (เนื่องจากเชื่อมต่อ 0 โดยตรง) ข้อความจะถูกจัดการจากขวาไปซ้าย (แทนซ้าย) ไปทางขวา)

ดูตัวอย่างที่สองสำหรับปัญหา Firefox (ในตอนท้ายของฉัน) มีตัวเลือกที่ชัดเจน

Firefox เลือกข้อความจากขวาไปซ้าย


17
นี่เป็นคำแนะนำที่แย่มากเพราะมันเล่นเกมที่มีตัวละครตามลำดับจริงเพื่อให้ได้ภาพที่ชัดเจน คำตอบอื่น ๆ อธิบายว่าทำไมสิ่งนี้จึงเกิดขึ้นและบางคนก็มีวิธีที่เหมาะสมในการจัดการกับมัน (เครื่องหมายแทนที่และทิศทางที่ชัดเจน)
Dranon

8
คุณช่วยชี้ให้เห็นว่าฉันอยู่ที่ไหนพร้อมด้วยคำแนะนำบางรูปแบบ? ฉันแค่แสดงตัวอย่างว่าเกิดอะไรขึ้นจริง ๆ แล้วมันเป็นไปได้ที่จะมีตัวเลขต่อท้ายและให้ข้อมูลเกี่ยวกับสาเหตุที่มันเกิดขึ้นเช่นนั้น
เซท

13

ภาษาฮิบรูที่เขียนจากขวาไปซ้าย - นี้จะทำให้ตัวละคร aleph พกข้อมูลที่ตัวอักษรถัดไปควรจะพิมพ์ซ้ายของมัน

หากคุณตรวจสอบเอกสารของคุณแบบหกเหลี่ยม (หรือเลื่อนเคอร์เซอร์ไปตามข้อความด้วยปุ่มลูกศรในเครื่องมือแก้ไขที่เหมาะสม) คุณจะสังเกตเห็นว่าคุณไปถึง alpeh ก่อนจากนั้นจึงไปที่หลัก

Ie: สมมติฐาน "อักขระถัดไป == อักขระทางขวา" ไม่ถือ


3
א 0 0 א 0-אא -0

ปัญหาคือที่ที่คุณทำเช่นนี้และการใช้งาน ในการรับพฤติกรรมหมายเลขฮีบรูอักขระทั้งหมดจะต้องอยู่ในทิศทางจากขวาไปซ้าย ใน HTML / CSS นั่นคือ:

<p style="direction:rtl"> א0 0א 0-א א-0 </p>

ในระบบปฏิบัติการต้องเปิดใช้งานภาษาฮิบรูและสองทิศทาง

วิธีแก้ปัญหาด้วยการแนะนำให้ใช้อักขระอื่นแทนการเอาชนะวัตถุประสงค์ของ Unicode aleph ที่เป็นตัวดำเนินการทางคณิตศาสตร์อาจมีลักษณะเหมือนกันในชุดอักขระบางชุด แต่เป็นอักขระที่แตกต่างไปจาก Hebrew aleph ทั้งในบริบทและวิธีการแยกวิเคราะห์ ตัวอย่างเช่นผู้พูดภาษาฮิบรู / คอมพิวเตอร์จะไม่สามารถประมวลผลได้อย่างถูกต้องหากใช้ร่วมกับคำภาษาฮิบรู ตัวเลขและตัวอักษรที่ไม่ใช่ตัวอักษรเป็นปัญหาเมื่อพวกเขาไม่ได้รับการเข้ารหัสทิศทางเดียวกับตัวอักษรอัลฟา ดังนั้นแดกดันตัวเลขตัวเองในขณะที่ดูเหมือนว่าควรจะเป็นอิสระจากตัวละครชุด / ทิศทางการดำเนินการในทิศทางใด unicode ของจดหมายก่อนหน้านี้ ดังนั้นในเอกสารภาษาฮิบรู - ตัวเลขกลายเป็น 'Hebraicised' นั่นคือทิศเหมือนฮิบรู ในขณะที่เอกสารภาษาอังกฤษ - ละติน


สหกรณ์ได้รับการพยายามที่จะใช้ aleph เป็นผู้ประกอบการที่เป็นตัวเลขไม่?
grawity

มันไม่ชัดเจนในโพสต์เลย ไม่ว่าในกรณีใดทิศทางจะไม่เกี่ยวข้องกัน Aleph ใช้ในการตั้งค่าและมีการกำหนดซีรีส์ที่ไม่สิ้นสุดและไม่มีที่สิ้นสุด มันควรไปทางซ้ายไปทางขวาเนื่องจากคณิตศาสตร์ทั้งหมดจากซ้ายไปขวาไม่ว่าคุณจะใช้ภาษาใด อย่างไรก็ตามการใช้ aleph เป็นตัวละครในภาษาฮิบรูถูกตั้งค่าตามทิศทางจากขวาไปซ้าย
Danny F

2

มันเป็นไปได้:

א 0

א - 0

א \\ 0

א -. / 0

א foobar 0

(คำตอบนี้ไม่ได้ตอบว่า "ทำไมจึงเป็นเช่นนี้" เนื่องจากมีผู้อื่นตอบแล้ว แต่จะตอบคำถามในชื่อเรื่อง "เป็นไปไม่ได้ที่จะ ... ")


7
แต่มันก็ไม่ได้ตอบอย่างไรและมันก็เกือบไร้ประโยชน์
นิวแฮมป์เชียร์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.