Bu sayfa makine çevirisidir. İngilizce orijinalini okuyun. English

IBSurgeon kütüphanesi

Firebird 2.5'te bağlantı dizesi karakter seti ile ilgili düzeltmeler

Yazar: Adriano dos Santos Fernandes [email protected]

Tarih: 2008-12-15

FB 2.5’ten önce, bağlantı dizesinde kullanılan dosya adları her zaman istemciden sunucuya herhangi bir dönüşüm yapılmadan iletilirdi. Sunucuda, bu dosya adları da herhangi bir dönüşüm yapılmadan işletim sistemi API fonksiyonlarıyla kullanılırdı. Bu durum, ASCII olmayan karakterler içeren dosya adlarının, istemci ve sunucu farklı işletim sistemlerinde olduğunda veya aynı işletim sisteminde farklı kod sayfaları kullanıldığında iyi bir şekilde birlikte çalışamamasına neden olur.

Bu sorun FB 2.5’te şu şekilde ele alınmıştır:

Dosya adı, varsayılan olarak işletim sistemi kod sayfasında kabul edilir.

isc_dpb_utf8.filename adında yeni bir DPB tanıtılmıştır. Anlamı, yukarıdaki kuralı değiştirmektir; böylece FB, iletilen dosya adını UTF-8 olarak değerlendirmelidir.

Eğer bir v2.5 (veya daha yeni) istemci, v2.5’ten eski bir uzak sunucuyla iletişim kuruyorsa ve isc_dpb_utf8.filename kullanılmışsa, istemci dosya adını UTF-8’den istemci kod sayfasına dönüştürür ve bu dosya adını sunucuya iletir. İstemci, isc_dpb_utf8.filename DPB’sini kaldırır.

Bu, insanların istemci ve sunucu işletim sisteminde aynı kod sayfasını kullandığı durumlarda geriye dönük uyumluluğu garanti eder.

Eğer bir v2.5 (veya daha yeni) istemci, v2.5 (veya daha yeni) bir sunucuyla iletişim kuruyorsa ve isc_dpb_utf8.filename kullanılmamışsa, istemci dosya adını işletim sistemi kod sayfasından UTF-8’e dönüştürür ve isc_dpb_utf8.filename DPB’sini ekler. Eğer isc_dpb_utf8.filename kullanılmışsa, istemci orijinal dosya adını DPB içinde sunucuya iletir. Böylece istemci, sunucuya her zaman UTF-8 dosya adı ve isc_dpb_utf8.filename DPB’si iletir.

Sunucuda alınan dosya adı, yukarıdaki kurallara tabidir. Ancak v2.5 istemcinin dosya adını otomatik olarak dönüştürüp DPB’yi ekleyebileceğini unutmayın. v2.5’ten eski istemciler bunu yapmaz, bu nedenle alınan dosya adları sunucu kod sayfasında kabul edilir. İstemci ve sunucu kod sayfası aynı olduğunda yine geriye dönük uyumluluğu garanti ederiz.

İşletim sistemi kod sayfası ve UTF-8, dosya adları için her zaman en iyi seçim olmayabilir. Örneğin, bir ISQL (veya başka bir araç) betiğiniz varsa ve bu betik başka bir bağlantı karakter seti kullanıyorsa, birden fazla karakter seti (kod sayfası) kullanan bir betiği (veya herhangi bir dosyayı) doğru şekilde düzenleyemezsiniz. Bu nedenle, artık bağlantı dizesi dosya adında herhangi bir Unicode karakteri ASCII karakterler olarak kodlayabilirsiniz. Bu, # sembolü kullanılarak yapılır. Bu, bir Unicode kod noktası numarası için bir önektir (onaltılık formatta, U+XXXX gösterimi gibi). Bunu şu şekilde yazmalısınız: #XXXX, X 0-9, a-f, A-F olabilir.

Gerçek # karakterini kullanmak istiyorsanız, ## veya #0023 (bunun kod noktası numarası) kullanabilirsiniz.

Bu karakter, istemci v2.5’ten eski olsa bile sunucuda bu yeni anlamla yorumlanır.

Dönüşümler için kullanılan işletim sistemi kod sayfası:

- Windows: Windows ANSI kod sayfası

- Diğerleri: UTF-8

2.5 Beta 2 için güncellendi: 2008-07-11

Bu kurallar artık string DPB öğeleri için de geçerlidir.