Turning gears are the logo of co-scripts

Merhaba,

Başka bir Türkçe karakter sorunu yazısında tekrar birlikteyiz. Çok itici bir giriş oldu belki ama farklı platform ve araçlarla çalışanların sürekli başına gelen bir problem. Ve bu problem başladığında projenin geri kalanının anlamı kalmıyor ;)

Hala çok az bilgim olan bir konuda size 2-3 ipucu vereceğim. Karakter verisi iki şekilde görünür, birincisi hafızada yer aldığı formu, diğeri kullanıcının arayüzünde sergilendiği formu. Veri tabanları bizim görmek istediğimiz formatta tutmak zorunda değillerdir. yine de veri kaybına uğramamaları için olası görüntülenecekleri dilin verileriyle saklanmaları temel limittir. 

Başıma gelen olayda MSSQL sunucu da tutulan metin bazlı verilerin nvarchar tipinde olması gerektiğini önceden öğrenmiştim. Bazen ntext yada char sorun çıkartabiliyordu. Hala bunların neden böyle olmaları gerektiğini kesin olarak bilmiyorum.

Veriyi mssql ve mysql gibi sql sunucular Collation isminde bir tip özelliğiyle (dil kodu) birlikte saklıyor ve sunuyorlar. Şuradan detaylı temel bilgiler alınabilir. Collation tablosu (listesi) burada görülebilir. Garip bir çeviri ile MS'in yazısı burada, SQL ile collation desteğini çevirebilmek için güzel bir trick örneğini buradan görebilirsiniz.

Gelelim ASPUpload'un konuyla ilişkisine. Bildiğimiz gibi veritabanına kayıt yapan .asp sayfamızın kodlamasına eskiden hiç dikkat etmezdik.

Ancak Türkçe Collation kullanan bir tablomuz varsa (MSSQL de) ve bir upload formu kullanarak metin verisi de gönderiyorsak üstelik sayfamız utf8 ile kodlanmışsa ASP içinden session, codepage,response metodları çok kar etmiyor.

Türkçe dil sorunlarını görüntüleme kısmında yani kullanıcı tarafında nasıl çözüldüğünü şu yazıda belirtmiştik. Ancak upload formunun getirdiği multipart verisinin metin kısmı için utf-8 kodlu sayfalarda mssql'e karakter bozulması olmadan girebilmesi için Set Upload = Server.CreateObject("Persits.Upload") kodu ile oluşturulan upload nesnesine ait CodePage kullanılmak zorunda. Hemen alt satıra şunları yazarak bu işi çözmüş oluyoruz.

Upload.CodePage = 65001 kaynak

Detaylı bilgiyi üstte verdiğim kaynaktan alabilirsiniz.

En başta bana sonra başkasına yardımı dokunur diye bu kodları bir yerlerde toplama ihtiyacımdan meydana gelen bu sitedeki yazılardaki amatörlüklerin hoş görülmesi dileğimle.

co-scripts tag image aspuploadmssql karakter sorunuutf8upload.codepagecodepageunicode
ID:223 | Okunma:3912

İlişkili Olabilecek Konular
ASP, HTML ve AJAX'ta Karakter Kodlama Hatası ve Çözümleri