Profili Göster

Dreamweaver ve Unicode Kullanımı

Deniz Kumsal Obuz Tarih: 1/12/2004 Yorum: 0 adet

Okunma : 212 Tutanlar: Bu yazıyı 0 kişi tuttu.

Etiketler :

Evrensel kod, altyapı, yazılım ve dilden bağımsız olarak her yazı karakteri için bir sayı sunar.İlke olarak, bilgisayarlar sadece sayılarla işlem yaparlar. Kelimelerin ve yazı karakterlerinin her biri için birer sayı atarlar ve böyle saklarlar. Evrensel Kod keşfedilmeden önce, bu sayıları atamak için birçok şifreleme yöntemi vardı. Ancak, tüm bu dilleri gösterebilecek, örneğin; Avrupa Topluluğu bünyesindeki tüm ülkelerin dillerini kapsayacak bir tek şifreleme yöntemi yoktu. Bunun yanısıra, sadece İngilizcedeki harfleri, noktalama işaretlerini ve teknik sembolleri kapsayan tek bir şifreleme yöntemi de bulunmamaktaydı.

Bu şifreleme yöntemleri kendi aralarında çelişmektedir. İki farklı şifreleme, aynı sayıyı iki farklı karaktere vermiş olabilir ya da farklı sayılar aynı karakteri kodlayabilir. Bilgisayarlar, özellikle sunucular, birçok şifrelemeyi desteklemek zorundadırlar; veriler, farklı şifreleme ve altyapılardan geçerken bozulma riski taşırlar.

İşin oldukça teknik kısımlarını açıklamak yerine bizim için anlam ifade eden pratik uygulamalara geçelim. Bir web sayfasında göstermek istediğimiz karakterlerin doğru görünmesi için sayfamıza eklememiz gereken kod aşağıdaki gibidir :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

Bu ifadenin ne anlattığını ve nerede yer alması gerektiğini inceleyelim. Bilindiği üzere HTML yapısı iki kısımdan oluşur: baş ve gövde yani head ve body. Diğer dinamik diller için de yapı aynı kalmaktadır. Burada sayfanın tamamına etki edecek olan açıklamaları head takıları arasında belirtmek gerekir. Bu durumda sayfanın karakter kodlaması tam olarak burada yer almalıdır. Bu cümlenin tam anlamına gelirsek belgenin içerik tipi olarak text kullanıldığı ve bunun html olarak yorumlanması gerektiğini anlıyoruz. Sayfanın kodlanması içinse UTF-8 kullanılmış.

UTF-8 yani evrensel kodlama kullanmasak ne olur?

Sorunun cevabına geçmeden önce geleneksel metodlara göz atmak yerinde olur. Sayfada görünmesini istediğimiz karakterler genellikle bir lisanın öğeleridir. Yani İngilizce, Fransızca veya bir başka lisanın alfabesi olabilir. Bu durumda hangi lisanı sayfada göstermek istersek o lisana ait karakter setinin bulup sayfanın baş kısmında belirtmeliyiz. Aşağıda bazı örnekler var:



<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"/> Türkçe(ISO) 

  <meta http-equiv="Content-Type" content="text/html; charset=windows-1256"/> Arapça(Win) 

  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"/> Orta Avrupa(ISO) ->İngilizce, Fransızca vs.

Açıkça görülüyor ki kodlamak istediğimiz farklı lisanların farklı charset kodları var. Bazı lisanlar benzerlik gösterdiğinden çeşitli gruplamalar yapılmış ve tek kod kullanılıyor olsa da bu metod başta belirtilen soruna çare bulamıyor. Aynı sayfada hem Arapça hem de Türkçe karakter kullanmak istersek ne yapacağız. Ya da Japonca ve Rusça aynı sayfada gösterilebilir mi? Sorunun yanıtı klasik yöntemlerle hayır olarak cevaplanabilir. Bu noktada yardıma evrensel kodlama geliyor ve bu durumu mümkün kılıyor.

Evrensel kodlama ile aynı sayfada farklı lisanları göstermek mümkün oluyor. Ayrıca özel hazırlanmış klavyeler ile matematiksel ifadeleri de yazmak mümkün. Bütün bu farklı karakterler UTF-8 sayesinde aynı sayfada görünebiliyor. Tabii işin can alıcı bir noktası daha var. Eski stil kodlama ile türkçe karakterlerin – aslında latin alfabesinde olmayan ya da özel işaretli harflerin de – gösterimi için oldukça karışık olan harf ve rakam dizgileri kullanmak gerekiyordu. Mesela Ş harfini yazmak için Ş küçük ş içinse ş yazmak gibi.

Elbette istediğimiz harf için gerekli olan dizgileri bize sağlayan kitaplar, kataloglar var ancak bunlara bakmak işi yavaşlatacağından en uygunu yazdığımız karakteri olduğu gibi kabul eden bir sisteme geçmektir. Gerçekten de şu anda okuduğunuz sayfanın kaynak koduna bakarsanız yazdığımız Türkçe karakterlerin rakam ve harf dizgileri yerine; görünümünü bildiğimiz haliyle durduklarına tanıklık edeceksiniz. Böylece özel harflerin gösterimi için fazla çabaya girmemiş oluyoruz.

İşin özü nerede peki?

Bu noktada durup işin biraz teknik detayını vermekte fayda var. Çok farklı lisanlara (güncel ve tarihi diller, resim ve sembol dilleri de dahil) ait karakterlerin aynı sayfada gösterilmesi bir yana, matematik sembollerini de hesaba katalım; ayrıca para birimlerini de unutmamak lazım; peki ya noktalama işaretleri; ya da müzik notaları. Ne kadar çok sembol oldu değil mi? Bu kadar sembolin kodlaması nasıl mı oluyor. Unicode Transformation Format kullanarak 1 milyondan fazla karakter kodlanabilmektedir. Sıklıkla kullanılan 65536 karakterin kodlaması bu 1 milyondan fazla kodlamada ilk sıralarda yer almaktadırlar. Biraz matematik yapalım ve A harfinin kodlanmasına bakalım:

A = 0000 0000 0100 0001 Yani sağ baştan sıfırdan başlayarak sayarsak 2 nin katları şeklinde 20 ve 26 yı toplayarak 65 sayısını elde ediyoruz. Şimdi ALT(Windows için) tuşuna basılı tutarak nümerik klavyeden 65 yazarsanız büyük A harfinin yazıldığına şahit olacaksınız. Bu işlem nümerik klavye kullanmazsanız gerçekleşmez çünkü ALT tuşu ile normal altı rakamın kullanımı da özel bir karaktere rezerve edilebilir; bu yüzden nümerik klavye ilk bilgisayardan günümüze dek yerini korumuştur. Yani sadece rakam girmeyi kolaylaştırmak için orada durmadığını öğrenmek de ek bir bilgi olsun.

Fark ettiğiniz üzere böyle zahmetli kodlar girmek yerine klavyeden ilgili tuşa basmak ve istediğiniz karakteri ekranda görmek oldukça rahatlatıcı. Klavyenizde bulunmayan bir karakteri size gelen bir belgeden kopyalayıp Unicode kullanılmış bir sayfaya yapıştırarak aynı işi yapabilirsiniz. Sayfa gerekli kodu bulacak ve sizin yerinize belgeye gömecektir. Biraz daha matematik isteyenler için UTF-8 kullanarak yani 28 ile yazılabilecek 65536 karakter olduğunu belirtelim. Yani 1 milyondan fazla karakterin sık kullanılanları ile eşit miktarda. Şaşırtıcı! Bu kadar karakter size yetmezse UTF-16 ve UTF-32 de var.

Anlatılanları özetlemek için aşağıda bazı örnekler var. Önce bazı karakterlerin Unicode karşılıkları:

天 = 0101 1001 0010 1001 = ALT + 22825

  س = 0000 0110 0011 0011 = ALT + 1587 

  α = 0000 0011 1011 0001 = ALT + 945

Rakamsal karşılıkları denerken kullandığınız programların bunları gösterebilmeleri gerekmektedir. Mesela ALT + 945 Windows Not Defteri’nde farklı Office Word’de farklı sonuç verebilmektedir. Kelime işleme programlarının Unicode destekli olmaları gerekmektedir. Bu da bazen yazılımların çalıştığı farklı coğrafi bölgeler için bile değişmektedir. Örnek olarak bu sayfada az önce yazmaya çalıştığımız Japonca karakter kaynak kodda gözükmemekte fakat sayfada kodu gömülü halde bulunmaktadır. Bu yüzden sayfayı bir Web tarayıcısından izlerken olması gerektiği gibi görebiliriz. Şimdi de "Cam yiyebilirim, bana zararı dokunmaz" cümlesinin pek çok dildeki yazımlarına bakalım:


<ol>
  <li>Greek: Μπορώ να φάω σπασμένα γÏ...αλιά χωρίς να πάθω τίποτα.</li>
  <li> Latin: Vitrum edere possum; mihi non nocet. </li>
  <li>Esperanto: Mi povas manĝi vitron, ĝi ne damaĝas min. </li>
  <li>French: Je peux manger du verre, ça ne me fait pas de mal. </li>
  <li>Provençal / Occitan: Pòdi manjar de veire, me nafrariá pas. </li>
  <li>Québécois: J'peux manger d'la vitre, ça m'fa pas mal. </li>
  <li>Walloon: Dji pou magnî do vêre, çoula m' freut nén mÃ¥. </li>
  <li>Picard: Ch'peux mingi du verre, cha m'foé mie n'ma. </li>
  <li>Basque: Kristala jan dezaket, ez dit minik ematen. </li>
  <li>Catalan: Puc menjar vidre que no em fa mal. </li>
  <li>Spanish: Puedo comer vidrio, no me hace daño. </li>
  <li>Galician: Eu podo xantar cristais e non cortarme. </li>
  <li>Portuguese: Posso comer vidro, não me faz mal. </li>
  <li>Caboverdiano: M' podê cumê vidru, ca ta magua-m'. </li>
  <li>Papiamentu: Ami por kome glas anto e no ta hasimi daño. </li>
  <li>Italian: Posso mangiare il vetro e non mi fa male. </li>
  <li>Milanese: Sôn bôn de magnà el véder, el me fa minga mal. </li>
  <li>Roman: Me posso magna' er vetro, e nun me fa male. </li>
  <li>Sicilian: Puotsu mangiari u vitru, nun mi fa mali. </li>
  <li>Zeneise <em>(Genovese):</em> Pòsso mangia o veddro e o no me fà ma. </li>
  <li>Romanian: Pot să mănanc sticlă și ea nu mă rănește. </li>
  <li>Cornish: Mý a yl dybry gwéder hag éf ny wra ow ankenya. </li>
  <li>Welsh: Dw i'n gallu bwyta gwydr, 'dyw e ddim yn gwneud dolur i mi. </li>
  <li>Manx Gaelic: Foddym gee glonney agh cha jean eh gortaghey mee. </li>
  <li>Old Irish <em>(Latin):</em> Con·iccim ithi nglano. Ním·géna. </li>
  <li>Irish: Is féidir liom gloinne a ithe. Ní dhéanann sí dochar ar bith dom. </li>
  <li>Scottish Gaelic: S urrainn dhomh gloinne ithe; cha ghoirtich i mi. </li>
  <li>Anglo-Saxon <em>(Latin):</em> Ic mæg glæs eotan ond hit ne hearmiað me. </li>
  <li>Middle English: Ich canne glas eten and hit hirtiþ me nouȝt. </li>
  <li>English: I can eat glass and it doesn't hurt me. </li>
  <li>Lalland Scots / Doric: Ah can eat gless, it disnae hurt us. </li>
  <li>Old Norse <em>(Latin):</em> Ek get etið gler án þess að verða sár. </li>
  <li>Norsk / Norwegian (Nynorsk): Eg kan eta glas utan å skada meg. </li>
  <li>Norsk / Norwegian (Bokmål): Jeg kan spise glass uten å skade meg. </li>
  <li>Íslenska / Icelandic: Ég get etið gler án þess að meiða mig. </li>
  <li>Svensk / Swedish: Jag kan äta glas utan att skada mig. </li>
  <li>Dansk / Danish: Jeg kan spise glas, det gør ikke ondt på mig. </li>
  <li>Soenderjysk: Æ ka æe glass uhen at det go mæ naue. </li>
  <li>Frysk / Frisian: Ik kin glês ite, it docht me net sear. </li>
  <li>Nederlands / Dutch: Ik kan glas eten; het doet mij geen pijn. </li>
  <li>Afrikaans: Ek kan glas eet, maar dit doen my nie skade nie. </li>
  <li>Lëtzebuergescht / Luxemburgish: Ech kan Glas iessen, daat deet mir nët wei. </li>
  <li>Deutsch / German: Ich kann Glas essen, ohne mir weh zu tun. </li>
  <li>Ruhrdeutsch: Ich kann Glas verkasematuckeln, ohne dattet mich wat jucken tut. </li>
  <li>Lausitzer Mundart ("Lusatian"): Ich koann Gloos assn und doas dudd merr ni wii. </li>
  <li>Sächsisch / Saxon: 'sch kann Glos essn, ohne dass'sch mer wehtue. </li>
  <li>Pfälzisch: Isch konn Glass fresse ohne dasses mer ebbes ausmache dud. </li>
  <li>Schwäbisch / Swabian: I kå Glas frässa, ond des macht mr nix! </li>
  <li>Bayrisch / Bavarian: I koh Glos esa, und es duard ma ned wei. </li>
  <li>Allemannisch: I kaun Gloos essen, es tuat ma ned weh. </li>
  <li>Schwyzerdütsch: Ich chan Glaas ässe, das tuet mir nöd weeh. </li>
  <li>Hungarian: Meg tudom enni az üveget, nem lesz tÅ'le bajom. </li>
  <li>Suomi / Finnish: Voin syödä lasia, se ei vahingoita minua. </li>
  <li>Sami (Northern): Sáhtán borrat lása, dat ii leat bávččas. </li>
  <li>Estonian: Ma võin klaasi süüa, see ei tee mulle midagi. </li>
  <li>Latvian: Es varu Ä"st stiklu, tas man nekaitÄ". </li>
  <li>Lithuanian: AÅ¡ galiu valgyti stiklÄ... ir jis manÄ™s nežeidžia </li>
  <li>Czech: Mohu jíst sklo, neublíží mi. </li>
  <li>Slovak: Môžem jesť sklo. Nezraní ma. </li>
  <li>Polska / Polish: Mogę jeść szkło i mi nie szkodzi. </li>
  <li>Slovenian: Lahko jem steklo, ne da bi mi škodovalo. </li>
  <li>Croatian: Ja mogu jesti staklo i ne boli me. </li>
  <li>Serbian <em>(Latin):</em> Mogu jesti staklo a da mi ne škodi. </li>
  <li>Serbian <em>(Cyrillic):</em> Могу јести стакло а да ми не шкоди. </li>
  <li>Macedonian: Можам да јадам стакло, а не ме штета. </li>
  <li>Russian: Я могу есть стекло, оно мне не вредит. </li>
  <li>Belarusian <em>(Cyrillic):</em> Я магу есцÑ- шкло, яно мне не шкодзÑ-ць. </li>
  <li>Belarusian <em>(Lacinka):</em> Ja mahu jeści škło, jano mne ne škodzić. </li>
  <li>Ukrainian: Я можу Ñ--сти шкло, й воно менÑ- не пошкодить.
    <!-- <li><b>Bulgarian</b>: Мога да ям стъкло и не ме боли. -->
  </li>
  <li>Bulgarian: Мога да ям стъкло, то не ми вреди. </li>
  <li>Albanian: Unë mund të ha qelq dhe nuk më gjen gjë. </li>
  <li>Turkish: Cam yiyebilirim, bana zararı dokunmaz. </li>
  <li>Turkish <em>(Ottoman):</em> جاÙ... ييه بلورÙ... بڭا ضررى طوقونÙ...ز </li>
  <li>Bangla / Bengali: আমি কাঁচ à¦-েতে পারি, তাতে আমার কোনো ক্ষতি হয় না। </li>
  <li>Marathi: मी काच à¤-ाऊ शकतो, मला ते दुà¤-त नाही. </li>
  <li>Hindi: मैं काँच à¤-ा सकता हूँ, मुझे उस से कोई पीडा नहीं होती. </li>
  <li>Tamil: நான் கண்ணாடி சாப்பிடுவேன், à®...தனால் எனக்கு à®'ரு கேடும் வராது. </li>
  <li>Farsi / Persian: .Ù...Ù† Ù...ÛŒ توانÙ... بدونِ احساس درد شيشه بخورÙ... </li>
  <li>Arabic: <span dir="rtl" xml:lang="ar" lang="ar">أنا قادر على أكل الزجاج Ùˆ هذا لا يؤلÙ...ني.

</li> <li>Hebrew: <span dir="rtl" xml:lang="he" lang="he">×× ×™ יכול לאכול ×-כוכית ו×-×" לא מ×-×™×§ לי.</span> </li> <li>Yiddish: <span dir="rtl" xml:lang="JI" lang="JI">איך קען עסן גלאָ×- און עס טוט מיר × ×™×©×˜ װײ.</span> </li> <li>Twi: Metumi awe tumpan, ÉœnyÉœ me hwee. </li> <li>Hausa (<em>Latin</em>): InaÌ„ iya taunar gilaÌ„shi kuma in gamaÌ„ laÌ„fiyaÌ„. </li> <li>Hausa (<em>Ajami</em>): <span dir="rtl" xml:lang="HA" lang="HA">إِنا إِىَ تَونَر غِلَاشِ كُمَ إِن غَمَا لَافِىَا</span> </li> <li>Yoruba: Mo lè jeÌ© dígí, kò ní pa mí lára. </li> <li>(Ki)Swahili: Naweza kula bilauri na sikunyui. </li> <li>Malay: Saya boleh makan kaca dan ia tidak mencederakan saya. </li> <li>Tagalog: Kaya kong kumain nang bubog at hindi ako masaktan. </li> <li>Chamorro: Siña yo’ chumocho krestat, ti ha na’lalamen yo’. </li> <li>Javanese: Aku isa mangan beling tanpa lara. </li> <li>Vietnamese (quá»’c ngữ): Tôi có thể ăn thá»§y tinh mà không hại gì. </li> <li>Vietnamese (nôm): 些 𣎏 ä¸- å’¹ æ°´ æ™¶ ð¦"¡ 空 𣎏 害 å’¦ </li> <li>Thai: ฉันกินกระจกไà¸"้ แต่มันไม่ทำให้ฉันเจ็บ </li> <li>Mongolian <em>(Cyrillic):</em> Ви шил идэй чадна, надад хортой биш </li> <li>Mongolian <em>(Classic):</em> á ªá ¢ á °á ¢á ¯á ¢ á ¢á ³á ¡á ¶á ¦ á ´á ¢á ³á á ¨á á ‚ á ¨á á ³á ¤á · á ¬á £á ¤á ·á á ³á á ¢ á ªá ¢á °á ¢ </li> <li>Tibetan: ཤེལ་སྒོ་ཟ་à½"ས་ང་à½"་གི་མ་རེདྷ། </li> <li>Chinese: <span xml:lang="zh" lang="zh">戒能吞下玻璃而不伤身ä½"。</span> </li> <li>Chinese (Traditional): 戒能吞下玻璃而不傷身é«"。 </li> <li>Taiwanese: Góa Ä"-tà ng chia̍h po-lê, mā bÄ" tio̍h-siong. </li> <li>Japanese: <span xml:lang="ja" lang="ja">私はガラスを食べられます。それは私を傷つげませã‚"。</span> </li> <li>Korean: <span xml:lang="ko" lang="ko">나ëŠ" ìœ ë¦¬ë¥¼ 먹을 수 있ì-´ìš". 그래도 ì•„í"„ì§€ 않아ìš"</span> </li> <li>Hawaiian: Hiki iaÊ»u ke Ê»ai i ke aniani; Ê»aÊ»ole nō lā au e Ê»eha.</li> <li>Marquesan: E koÊ»ana e kai i te karahi, mea ʻā, Ê»aÊ»e hauhau. </li> <li>Navajo: Tsésǫʼ yishą́ągo bííníshghah dóó doo shiÅ‚ neezgai da. </li> <li>Lojban: mi kakne le nu citka le blaci .iku’i le se go’i na xrani mi </li> <li>Nórdicg: LjÅ"r ye caudran créneþ ý jor cẃran. </li> </ol></span>

Tekrar dikkat etmenizi isterim ki 98 ve 100 numarada yer alan Çince ve Japonca kaynak kodda kutu şeklinde görünmesine rağmen tarayıcıda düzgün izlenmektedir. Bu da kodun sonradan yorumlandığına ve belgede gömülü olduğuna işaret edip, uygulamanın doğru çalışmasında izlediğimiz yazılımın özelliklerine bağlı olduğunu kanıtlar. Çünkü 97 numaradaki Çince de kutu şeklindedir ama 98 numara gibi düzgün izlenmemektedir. Bunun için uygun tarayıcı gereklidir.

Sonuç

Uygun coğrafi bölgede uygun yazılımlar ile Unicode kodlaması yapılmış bir sayfadaki karakterleri sorunsuz izlemek mümkün olmaktadır. Gerekli olan tek şey belgenin karakter setini UTF-8 olarak ayarlamak.

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

İçeriğe kayıtlı yorum bulunmuyor. İlk yorumu siz buradan ekleyebilirsiniz.


aç-kapa Yazarın Diğer Yazıları

Makale

İlişkili makale bulunamadı.

yeni bir tane ekleyin

Haber

İlişkili haber bulunamadı.

yeni bir tane ekleyin

Ders

İlişkili ders bulunamadı.

yeni bir tane ekleyin

aç-kapa Bu makale ile ilgili olabilecek yazılar

yeni üyelik | şifremi unuttum

aç-kapa Eğitim Bilişim Hukuku Sertifika Programı

Bilişim Hukuku Sertifika Programı

BILISIM HUKUKU SERTIFIKA PROGRAMI 22 – 23 Kasım 2008 – 09.30 – 17.00 – Lares Park Otel – Taksim – 650 YTL+kdv Eg...
Kategori: Eğitim

aç-kapa Yarışma 5.İstanbul Animasyon ve Görsel Efekt Kısa Film Yarışması

5.İstanbul Animasyon ve Görsel Efekt Kısa Film Yarışması

5.İstanbul Uluslararası Animasyon Festivali, 24-30 Kasım 2008 tarihleri arasında gerçekleştirilecektir. Festival dahilinde gerçekleşen 5. İstanbul Ani...
Kategori: Yarışma

aç-kapa Konferans TIME 2008 Interpro Forum Telekom, Internet, Medya, Eğlence Konferansı

TIME 2008 Interpro Forum Telekom, Internet, Medya, Eğlence Konferansı

Program 1 Aralık 2008 Pazartesi 08:00-12:00 Kayıt 10:00-10:30 Ana Oturum Türkiye’de Yeni Nesil Telekom Hizmeti Cengiz Anık – Avea, Ge...
Kategori: Konferans

aç-kapa Çalıştay Dirty99, 9. Pazarlama Zirvesi Etkinliği

Dirty99, 9. Pazarlama Zirvesi Etkinliği

Dirty99, 9. Pazarlama Zirvesi süresince 99 özel pazarlama profesyoneli ile, 99 dakikalık bir workshop çalışması! Özellikle interaktif pazarlama araçla...
Kategori: Çalıştay

aç-kapa Eğitim Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Etkin Katılım Çağrısı Türkiye’de Internet ile ilgili grupları biraraya getirerek İnternet’i tum boyutlarıyla tanıtmak, gelistirmek, tartı...
Kategori: Eğitim

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 365 (1 kayıtlı, 364 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul