อะไรคือความแตกต่างในทางปฏิบัติระหว่าง 'สัญลักษณ์' และ 'ตัวละคร'?


26

ฉันเห็นคำถามนี้เกี่ยวกับข้อเสนอของเว็บไซต์วิชาการพิมพ์และทำให้ฉันไม่ทราบคำตอบ ฉันมักจะถือว่า 'สัญลักษณ์' และ 'ตัวละคร' เป็นแบบเปลี่ยนได้


หลังจากอ่านคำอธิบายในหน้ารูปแบบการเข้ารหัสอักขระ Unicodeความเข้าใจของฉันเป็นดังนี้:

  • ตัวละครจะถูกกำหนดโดยพวกเขามีความหมายในภาษาร่ายมนตร์โดยพวกเขาปรากฏตัว ดังนั้นการรวมเอาสุนทรียภาพเข้าด้วยกันfi ก็คือ glyph หนึ่งอัน แต่มีอักขระสองตัว

ดังนั้นความเชื่อของฉันคือ (โปรดแก้ไขให้ฉันถ้าฉันผิด) ว่าความแตกต่างในทางปฏิบัติจะเป็น:

  • ตัวแยกวิเคราะห์ข้อความที่ไม่สนใจสุนทรียภาพของข้อความจะอ่านร่ายมนตร์เป็นตัวอักษรตามลำดับ ดังนั้น:
    • หากคุณต้องคัดลอกและวางข้อความที่มี glyphs เป็นโปรแกรมแก้ไขข้อความธรรมดา glyphs จะถูกแปลงเป็นอักขระที่เกี่ยวข้อง ( glyph glyph จะกลายเป็นfและi)
    • ระบบอัตโนมัติใด ๆ ที่ทำมาอย่างดีโดยใช้การแยกวิเคราะห์ข้อความ (เช่นซอฟต์แวร์รวบรวมข้อมูลของเครื่องมือค้นหาโปรแกรมอ่านหน้าจอตัวตรวจการสะกดคำ) จะตีความร่ายมนตร์เป็นอักขระตามลำดับ
    • อักขระหนึ่งตัวสามารถมีชุดสัญลักษณ์หรือชุดสัญลักษณ์ได้หลายชุด ฉันอยากจะบอกว่าสัญลักษณ์หนึ่งอันสามารถมีตัวละครได้เพียงตัวเดียว แต่สิ่งนี้ไม่ถูกต้องเนื่องจากมีตัวอย่างในบทความที่เชื่อมโยงของชุดสัญลักษณ์ 3 ตัวและชุดสัญลักษณ์ที่ดูเหมือนว่าแต่ละตัวจะสอดคล้องกับตัวละครและชุดอักขระ ฉันไม่เห็นว่ามันจะทำงานได้อย่างไร: แน่นอนนั่นหมายความว่าจะมีความไม่แน่นอนหรือความกำกวมในการตีความร่ายมนตร์เหล่านั้นแตกต่างกันโดยนักแปล (หรือแตกต่างกันไปตามภาษาหรือตามตัวอักษร?)
    • ในขณะที่เบราว์เซอร์ glyph (เช่นหนึ่งใน Illustrator) มีชุดสัญลักษณ์แบบเต็มของตัวอักษรแมปอักขระ (เช่นแมปอักขระของ Windows) มีเฉพาะอักขระไม่ใช่ glyphs ที่มีหลายอักขระเช่น ligatures (สิ่งที่ฉันไม่เคยสังเกตเห็นมาก่อน)

ฉันรู้สึกเหมือนฉันเกือบมี แต่ฉันบางสิ่งบางอย่างที่ใดที่หนึ่งเข้าใจผิดอย่างชัดเจนตามแนว: ไม่ได้เป็นเพียง "หนึ่งในสัญลักษณ์ตัวอักษรหลายสิ่ง" แต่ยังคัดลอกและวางพฤติกรรมด้วยหนังสติ๊กไม่ได้ค่อนข้างสิ่งที่ผมคาดว่า:

  • คัดลอกมัดจาก Illustrator ไปยังกล่องอินพุตนี้: วางเป็นfi(สองอักขระ) ตามที่คาดไว้
  • วางในโค้ด HTML สำหรับมัน ( fi) - แสดงเป็นเอ็นร้อยหวายเมื่อไม่อยู่ในบล็อคโค้ด (fi - ซึ่งในฟอนต์นี้ดูไม่เหมือนมัด แต่คุณจะเห็นว่าเป็นหนึ่งถ้าคุณพยายามเลือกเพียงครึ่งเดียว ของมัน) และรหัสเมื่ออยู่ในบล็อครหัส ( fi) ตามที่คาดไว้
  • คัดลอกและวางเอ็นที่ไม่ใช่โค้ด - บล็อกที่เรนเดอร์กลับเข้าไปในกล่องอินพุต: วางเป็นอักขระการมัดและแสดงผลเป็นเอ็นโดยไม่คำนึงว่าอยู่ในบล็อกโค้ดหรือไม่ (fi และ) คำในทำนองเดียวกันที่มี: mis t mis fi ts ( fit misfits) วางเป็นfi t mis fi ts ( fit misfits) อาจขึ้นอยู่กับว่าสถานที่นั้นถูกวางเข้าใจการเข้ารหัสที่ใช้หรือไม่

ฉันเข้าใจเรื่องนี้มากแค่ไหน คนที่สามารถทำให้ฉันขวา: ระบุชัดเจนนิยามของความแตกต่างระหว่างร่ายมนตร์และตัวอักษร (ถ้าฉันเป็นผิดหรือสามารถปรับปรุง) และให้ชัดเจน / ตัวอย่างถูกต้องมากขึ้นกว่าฉันในสิ่งที่หมายถึงในทางปฏิบัติ ?


2
มันซับซ้อนมากขึ้นเมื่อคุณมีสคริปต์เช่นภาษาอาหรับที่คุณรวมอักขระ
Reinstate Monica - M. Schröder

1
@ MartinSchröder +1 ดูเหมือนประโยคเปิดของคำตอบที่ยอดเยี่ยม ... :)
user56reinstatemonica8

คำตอบ:


4

ร่ายมนตร์เกี่ยวข้องกับวิธีการแสดงข้อความตัวอักษรกับวิธีการตีความ เมื่อคุณคัดลอกและวางแอปพลิเคชันต้นทางมักจะมีตัวเลือกหลายรูปแบบ ข้อความธรรมดาจะสลายการเชื่อมโยง fi เป็น f และ i, รูปแบบ HTML อาจแปลไปยังหน่วยงานการกุศลที่คุณอ้างถึงหรือยังสลายใน f และ i

โดยทั่วไปความสัมพันธ์ระหว่างอักขระและร่ายมนตร์คือ n: m ในภาษาอินดิกตัวละครบางตัวแบ่งออกเป็นสองร่ายมนตร์ที่วางไว้ในสถานที่ต่าง ๆ ของคำ ในภาษาละตินสถานการณ์ที่ใกล้เคียงที่สุดจะแสดงéเป็นสองร่ายมนตร์ (e และ ´) ในอารบิกอักขระแต่ละตัวมีร่ายมนตร์ที่แตกต่างกันขึ้นอยู่กับตำแหน่งภายในคำ: เริ่มต้นกลางสุดท้ายหรือโดดเดี่ยว

การแปลจากตัวอักษรเป็นสัญลักษณ์เฉพาะสำหรับแต่ละแอปพลิเคชันและคุณสมบัติการพิมพ์ที่รองรับ สำหรับข้อความภาษาละตินการแปลนี้เป็นแบบตรงไปตรงมา แต่ฟอนต์ OpenType ได้นำเสนอคุณสมบัติเพิ่มเติมเช่น ligatures, swashes, รูปแบบอื่น, ตัวพิมพ์เล็กเป็นต้น

ด้วยเหตุผลเชิงปฏิบัติคุณต้องกังวลกับตัวคุณเองด้วย glyphs เมื่อคุณใช้วิธีที่แอปพลิเคชันแสดงข้อความหรือเมื่อคุณออกแบบแบบอักษรหรือเมื่อคุณต้องการใช้คุณสมบัติ OpenType ที่จะแทนที่ glyphs บางตัวกับผู้อื่น (เช่น ligatures) มิฉะนั้นโค้ดโค้ด Unicode จะเป็นเพื่อนของคุณ


สวัสดี user322483 ยินดีต้อนรับสู่ GDSE และขอบคุณสำหรับคำตอบของคุณ หากคุณมีคำถามใด ๆ โปรดดูศูนย์ช่วยเหลือหรือส่ง Ping หนึ่งในเราในการออกแบบกราฟิกแชทเมื่อชื่อเสียงของคุณเพียงพอ (20) ร่วมให้ข้อมูลและเพลิดเพลินกับเว็บไซต์!
Vincent

1
คุณเขียน "ในภาษาอารบิกอักขระแต่ละตัวมีร่ายมนตร์ที่แตกต่างกันขึ้นอยู่กับตำแหน่งภายในคำ: initial, middle, final หรือ isolated" <--- พวกเขาจะไม่ได้เป็นตัวละครที่แตกต่างกัน ภาษาอังกฤษมี A และ a แต่ในการคำนวณการพูดคุย A และ a เป็นอักขระที่แตกต่างกัน แต่ละสัญลักษณ์ถูกแมปกับรหัสที่แตกต่างกัน ภาษาฮิบรูมี chaf และ chaf สุดท้าย (ตัวอักษรที่ท้ายคำมีลักษณะแตกต่างกัน) และฉันแน่ใจว่ามันเรียกว่าเป็นอักขระที่แตกต่างกันในการคำนวณ
barlop

14

ฉันไม่คิดว่าความเข้าใจของคุณไม่ถูกต้องคุณแค่เห็นระบบที่พยายามช่วยเหลือผู้ใช้โดยการวางสิ่งที่คิดว่าพวกเขาต้องการ เนื่องจากการเชื่อมโยงบางอย่าง ('fi', 'fl') เป็นเรื่องธรรมดานอกระบบการเรียงพิมพ์ซอฟต์แวร์ตระหนักดีว่าผู้ใช้อาจไม่ได้ใส่ glyph นั้นแอปอื่นจึงเปลี่ยนอักขระที่พิมพ์ลงไป

ในระยะสั้น: ตัวละครหมายถึงหน่วยภาษา สัญลักษณ์หมายถึงตัวอย่างการออกแบบของหน่วยงานที่ไม่ว่าจะเป็นตัวพิมพ์ใหญ่พิมพ์เล็ก, หมวกขนาดเล็ก, ประวัติศาสตร์, หรือตัวแปรโวหาร


ในการคำนวณ A และ a เป็นอักขระที่แตกต่างกัน ASCII มี 128 ตัวอักษรและคำว่ามี A และตัวอักษรที่แตกต่างกัน
barlop

วิศวกรใช้คำจำนวนมากที่ไม่สอดคล้องกับคำนำในอุตสาหกรรมอื่น คุณเป็นตัวอย่างที่ดีอย่างหนึ่ง
เสื้อคลุมธรรมดา

ที่มากับคำว่า "ตัวละคร" และ "สัญลักษณ์" ครั้งแรก? นักออกแบบกราฟิกหรือวิศวกรคอมพิวเตอร์? ฉันคิดว่าคอมพิวเตอร์มาก่อนการออกแบบกราฟิก แต่อาจจะมีอุตสาหกรรมการพิมพ์ที่นำหน้าการออกแบบกราฟิกและคอมพิวเตอร์ที่นำหน้ามาโต้แย้งได้ในบางวิธีหรือคอมพิวเตอร์สมัยใหม่ ฉันเดาว่าคนที่สามารถตอบได้ดีที่สุดสำหรับตอนนี้คือการออกแบบกราฟิกเป็นอุตสาหกรรมการพิมพ์ แต่ไม่มีการแลกเปลี่ยนสแต็คอุตสาหกรรม แต่มันน่าสนใจที่จะรู้ว่าใครยืมมาจากใครและเป็นตัวละครในระยะใด
barlop

1
วิชาทำตัวพิมพ์มานานก่อนวิศวกรรมซอฟต์แวร์ กรุณาโพสต์ที่นี่ถ้าคุณทำการวิจัยและค้นหาต้นกำเนิด ฉันเดาว่ามันจะเป็นบางครั้งในศตวรรษที่ 17 อาจจะเร็วเท่านักพิมพ์ดีดคนแรกในกลางปีที่ 16
เสื้อคลุมธรรมดา

6

มีคำตอบสองสามข้อที่ให้ข้อมูลที่ดีเกี่ยวกับอักขระ glyphs และ vs แต่พวกเขาไม่ได้กล่าวถึงแหล่งที่มาของความสับสนของคุณเกี่ยวกับการคัดลอกและวาง

ก่อนอื่นความเข้าใจของคุณนั้นถูกต้องแล้ว:

ตัวละครจะถูกกำหนดโดยพวกเขามีความหมายในภาษาร่ายมนตร์โดยพวกเขา ปรากฏตัว ดังนั้นการรวมสายไฟเข้าด้วยกันเพื่อความสวยงามคือหนึ่งสัญลักษณ์ แต่เป็นอักขระสองตัว

เป็นมูลค่าที่เน้นว่ารายการอักขระถูกกำหนดโดยมาตรฐาน Unicode ซึ่งเผยแพร่โดย Unicode Consortium เนื่องจากความจริงที่ว่าพวกเขามีอำนาจในการเข้ารหัสข้อความในรูปแบบที่เครื่องอ่านได้ คำจำกัดความข้างต้นเป็นแนวทางหลักที่สมาชิก Unicode Consortium ใช้เพื่อพิจารณาว่ามีบางส่วนที่เสนอให้ Unicode เป็นตัวละครหรือไม่ดังนั้นจึงควรค่าแก่การรวมหรือglyphและควรจัดการโดยตัวแสดงแบบอักษร

ฉันพูดถึงเรื่องนี้เพราะความสับสนคุณมีประสบการณ์ดังกล่าวข้างต้นเป็นผลมาจากความจริงที่ว่ามีอยู่หลายมัดตัวอักษร (ไม่ได้ร่ายมนตร์ ) ใน Unicode ตัวอย่างเช่นU+FB01เป็นตัวละครสำหรับ ig มัด: http://unicode.org/charts/PDF/UFB00.pdf

การมีอักขระมัดใน Unicode ไม่ได้อยู่ในจิตวิญญาณของคำนิยามข้างต้นสำหรับสิ่งต่าง ๆ ที่ควรรวมอยู่ในมาตรฐาน Unicode เป็นตัวอักษรเนื่องจากตัวยึดไม่ได้มีความหมายที่เป็นอิสระจากองค์ประกอบของอักขระสองตัวอื่น ๆ คน Unicode ตระหนักถึงเรื่องนี้เป็นอย่างดีและUnicode FAQ เกี่ยวกับการยอมรับก็มีมากเช่น:

หนังสติ๊กที่มีอยู่มีอยู่โดยทั่วไปเพื่อความเข้ากันได้และการปัดเศษด้วยชุดอักขระที่ไม่ใช่ Unicode การใช้งานของพวกเขาหมดกำลังใจ

การมีอยู่ของตัวละครนี้เป็นที่มาของความสับสนในที่สุด

ในซอฟต์แวร์ที่ติดตั้งอย่างถูกต้องข้อความที่คัดลอกควรคัดลอกอักขระที่ระบุไม่ใช่glyphsและนั่นคือสิ่งที่เกิดขึ้นในสามตัวอย่างของคุณ

1) ในตัวอย่างแรกที่คุณพิมพ์fและiเข้า Illustrator ซึ่งแสดงผลรัดเดียวสัญลักษณ์ เมื่อคุณเลือกและคัดลอก glyph ที่แสดงผลแล้ว Illustrator จะคัดลอกอักขระf( U+0066) และi( U+0069) ไปยังคลิปบอร์ดของคุณอย่างถูกต้อง

2) ในตัวอย่างที่สองคุณพิมพ์รหัส HTML สำหรับอักขระมัด( &#64257) ลงในกล่องป้อนข้อมูลและมีglyph สัญลักษณ์มัดที่ถูกต้องแสดงถึงอักขระมัด(จริง ๆ แล้วเนื่องจากอักขระที่แฝงตัวเป็นจริงแล้ว U+FB01ข้างต้นเลือกสัญลักษณ์ที่จะคัดลอกตัวอักษรตัวเดียว

3) ในตัวอย่างที่สามคุณกำลังคัดลอกอักขระการ ผูกมัดเรนเดอร์U+FB01ที่แสดงในตอนที่ 2 ซึ่งจะวางเป็นอักขระนั้นเสมอ ความสับสนหลักของคุณดูเหมือนจะเกี่ยวกับความแตกต่างระหว่างรหัสเอนทิตี HTML และตัวอักขระโดยเฉพาะอย่างยิ่งในเรื่องเกี่ยวกับวิธีการแสดงผลทั้งในและนอกบล็อคโค้ด

รหัสเอนทิตี HTML &#64257;คือสตริงที่มีอักขระ 8 ตัว HTML renderer ของเว็บเบราว์เซอร์ของคุณจะแทนที่อักขระ 8 ตัวเหล่านั้นU+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023ด้วยอักขระ Unicode เดียวU+FB01ซึ่งจะแสดงผลอย่างเหมาะสม อย่างไรก็ตาม<code>แท็กใน HTML จะปิดใช้งานลักษณะการทำงานนี้และทิ้งอักขระ 8 ตัวดังกล่าว

เมื่อคุณคัดลอกออกจาก HTML ที่แสดงผลคุณคัดลอกอักขระที่แสดงผล(ซึ่งแตกต่างจากร่ายมนตร์ที่แสดงผล) ดังนั้นเมื่อคุณคัดลอกเอนทิตี HTML ที่แสดงผลของคุณU+FB01อักขระเดียวจะถูกคัดลอกไปยังคลิปบอร์ดของคุณ

เมื่อคุณวาง U+FB01อักขระกลับเข้าไปใน HTML ไม่จำเป็นต้องทำการแทนที่นั่นหมายถึงอักขระนั้นจะแสดงผลเป็นมัดโดยไม่คำนึงว่าอักขระนั้นอยู่ภายใน<code>บล็อกหรือไม่


1

ตัวละครเป็นสิ่งที่เก็บไว้ในไฟล์ข้อความประมวลผลโดยแอปพลิเคชั่นและย้ายไปมา

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

  • แอปพลิเคชั่นอ่านสตริงข้อความเป็นสตริงของอักขระที่เก็บไว้ในดิสก์หรือในหน่วยความจำ
  • จากนั้นจะส่งไปยังเอ็นจิ้นเลย์เอาต์ข้อความท่ามกลางคุณสมบัติอื่น ๆ เช่นแบบอักษรที่ต้องการภาษาข้อความและอื่น ๆ :
    • เอ็นจิ้นเลย์เอาต์ข้อความโดยทั่วไปจะเปิดไฟล์ฟอนต์เพื่อถามถึง glyph (s) ที่สอดคล้องกับอักขระแต่ละตัวและทำการทดแทน glyph (เช่นแทนที่ glyph สำหรับfและiด้วย glyph ของ ligature fi) และการวางตำแหน่ง (เช่นการจัดช่องไฟ)
    • ในตอนท้ายเอ็นจิ้นเลย์เอาต์มีลำดับของ glyphs ตำแหน่งของสัมพัทธ์ซึ่งกันและกันและการแม็พระหว่างอักขระอินพุตและ glyphs เอาต์พุต การแม็พอักขระกับสัญลักษณ์คือเพื่อให้ทราบว่าอักขระสองตัวแรกในคำนั้นfileสอดคล้องกับสองสัญลักษณ์แรก (การfiมัด), อักขระที่ 3 ถึง glyph ที่ 2 และอักขระที่ 4 ถึง glyph ที่ 3
  • ไลบรารีการเรนเดอร์กราฟิกจะใช้เพื่อ "วาด" ร่ายมนตร์บนหน้าจอโดยใช้รูปร่างจากแบบอักษร
  • เมื่อผู้ใช้เลือก“ glyphs” บนหน้าจอแอปพลิเคชันจะปรึกษา glyph กับการแมปข้อความที่จัดทำโดยเอ็นจิ้นเลย์เอาต์เพื่อค้นหาว่าส่วนใดของข้อความอินพุตที่สอดคล้องกับสิ่งที่ผู้ใช้เลือกและส่งข้อความนั้นไปยังคลิปบอร์ด ผู้ใช้คัดลอก
  • สิ่งเดียวกันจะเกิดขึ้นเมื่อผู้ใช้แทรกเคอร์เซอร์ตรงกลางของข้อความและเริ่มพิมพ์การแม็พจะกำหนดตำแหน่งที่จะป้อนข้อความเพื่อแทรกอักขระใหม่และข้อความการอัปเดตจะถูกส่งไปยังโครงร่างโปรแกรมเพื่อประมวลผลและวาดใหม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.