Windows'da neden bazı karakterler korkunç, korkunç yanlış çiziyor?


16

Garip karakterler:

ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้้้้้้้้้้้้้ ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้้้้้้้้้้้้้ ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้้้้้้้้้้้้้ ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้

Soru: Windows * 'a baktığınızda bu karakterler neden bu kadar garip?

İşte, Windows'u kullanmaya zorlanmayan şanslı piçler için Outlook'tan bir snippet:

Şey

İlgili: Kullanılan karakter kodlaması nedir?

* Windows işletim sisteminde olduğu gibi. GTK + ve benzerlerini kullanarak metin çizen uygulamalar, bunları bir LSD gezisinden yanlış giden bir şey gibi göstermez .


Windows makinenizde, soruya yazdığınız karakterlerin görüntüdeki karakterlere benzediğini mi söylüyorsunuz? Çünkü yazılan karakterler Windows makinemde iyi görünüyor.
dsolimano

1
Sorunuz, Windows'un bunları "yanlış" olarak belirlediği, asılsız bir iddia içeriyor. Nasıl çizileceğini düşündüğünüzü ve Windows'un bunları çizme biçiminde neyin yanlış olduğunu belirtmeniz yardımcı olacaktır.
David Schwartz

2
Diğer işletim sistemlerinin bunu nasıl ele aldığını merak ediyorum, sadece Windows'un bunu nasıl yaptığını ve bana "doğru" gibi geldiğini görüyorum.
Mokubai


Yanıtlar:


10

Windows'un "doğru yaptığını" düşündüğüm için biraz hit almışım gibi, pozisyonumu haklı çıkarmak için bir cevap göndermem gerektiğini hissediyorum.

Mesele şu ki, sahip olduğunuz metin işletim sistemine çılgınca birleştirme karakterleri oluşturmasını söylüyor. Bir işletim sisteminin bunları diğeri oluşturması sorunu, bir takım sorunlardan kaynaklanmaktadır. Bu sorunlardan biri , programcıların bunları oluşturmak için kod yazdıklarında ne kadar kapsamlı olduklarıdır, diğeri ise programcıların bunları düzgün bir şekilde uygulayamayacak kadar tembel olmalarından kaynaklanmaktadır.

Temel olarak, yazılı dillerin akıcı şeyler olduğu ve belirli dillerdeki birçok karakterin , karakterlerin telaffuzunu değiştirmek için uygulanan çoklu farklı aksanlara sahip olduğu fikri ortaya çıkar . Tüm bu aksan işaretleri nasıl ele alırız, her harfine aksanla yeni bir karakter verir miyiz (bu, birçok yeni ve neredeyse aynı karakterden oluşan bir heck ile sonuçlanır mı) yoksa özellikle aksan için bir dizi karakter yaratır mıyız ve genel alfabe?

Unicode bize her ikisini de yapma kapsamı veriyor, ancak bunu yaparken bu aksanları yapmak zorunda olan programcılar, aslında biri yukarıda ve aşağıda olmak üzere birden fazla aksan içeren bazı karakterlerin olduğu gerçeğiyle uğraşmak zorunda kalıyorlar ve sonra programcı ne zaman durdukları sorusunu sormak. Bunu ikiyle sınırlayabilir ve çoğu insanı tatmin edebilirler, ancak kendi dillerinde resmi olarak yazmak için üç aksan isteyen veya ihtiyaç duyanları görmezden gelebilirler.

Microsoft, doğru veya yanlış olsun, kullanıcının bir kişinin kaç tane ekstra işaret kullanmak istediğine karar vermesine izin vermeye karar verdi. Bu yol oldukça iyi bir programcı ve takip edilmesi zor bir rasyonalizasyon gerektiriyor. Tam her ikisi de bu izin onlara destek ve onlar bunu gerçeğini de .

Öte yandan bu karakterler eksik olsaydı, neden eksik olduklarını bilmek isterdim. Bir " xaksandan sonra bunu yere düşürüyoruz" kararı mıydı , yoksa programcıların bunu düzgün yapmak için çok tembel olması ve beni yürütmek için diakritiklerde gizlenen kodla bir miktar arabellek taşmasına maruz bırakması mıydı? sistem?

Buradaki basit sorun, aslında bu karakterleri oluşturarak, sistemin doğru olduğunu düşündüğü şeyi yapmaktan ya da daha da kötüsü, potansiyel olarak zararlı bir şey yapmaktan ziyade söylendiğini yaptığını görebiliyorum .


11
Veya: Windows neden korkunç, korkunç yanlış karakterler çiziyor?
mtone

Başkasının metnini örtmek, kitabımdaki "potansiyel olarak zararlı" kriterlerini karşılıyor. (Belki de kapsanan mesaj önemlidir.) Bu arada, tercih ettiğim çözüm, aksan sayısında bir sınır olmaktan ziyade bir çeşit kırpma olabilir. (Bitişik satırlardaki karakterlerle örtüşen karakterler kullanan gerçekten diller varsa, bunu bilmek umrumda değil!)
Harry Johnston

Ayrıca: MS'in bu davranışı yakın zamanda değiştirmesi olası olmadığından, Facebook ve kullanıcı verilerini kabul eden diğer sitelerin, şakacıların bu "özelliği" kötüye kullanmasını önlemek için karakter kümesini dezenfekte etmeye çalışması muhtemeldir. Ne yazık ki, sanitasyon sürecinin istenmeyen yan etkileri olabilir. Windows çıktıyı kırpsaydı bu gerekli olmazdı.
Harry Johnston

4

Windows * 'a baktığınızda bu karakterler neden bu kadar garip?

Çünkü hiçbir gerçek komut dosyası bu kadar çok işareti bir araya getirmeyecek olsa da, Windows çok sayıda Unicode karakterini birleştirirken metin oluşturmaya çalıştığından .


Muhtemelen Windows, kaç birleştirici karakterin kullanılabileceğine ilişkin sınırlar koymak yerine, aslında sorulana göre "doğru yapıyor" anlamına gelir.
Mokubai

Ayrıca bkz. Superuser.com/questions/389333/… , bu tür hilelerin Facebook'ta popülerlik kazandığını göstermektedir.
Jukka K. Korpela

@Mokubai: bir şey, bu güvenilmeyen veriler - internetten gelen veriler. Windows, kullanıcının yararına olmayacaksa, güvenilmeyen verilerin sorduğunu yapmamalıdır.
Harry Johnston

1
O, ben daha endişeli olurdu @HarryJohnston etmedi tüm aksan işaretleri göstermek, benim cevap bakınız.
Mokubai
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.