asp ve ASP genelleştirme sorunları

Makale çevirileri Makale çevirileri
Makale numarası: 893663 - Bu makalenin geçerli olduğu ürünleri görün.
ASP Destek Sesi sütunu
Bu sütunun ihtiyaçlarınıza özelleştirmek için sizi ilgilendiren konular hakkındaki fikirlerinizi göndermeye davet ediyoruz ve gelecekte Knowledge Base makaleleri ve Destek Sesi sütunu görmek istediğiniz konuları ele. Kullanarak fikir ve görüşlerinizi gönderebilirsiniz Bunun için sor formu. Bu sütunun alt form için bir bağlantı yoktur.
Hepsini aç | Hepsini kapa

Bu Sayfada

Giriş

Hoş Geldiniz! Bu, Microsoft ASP ile Sukesh Khare Geliştirici Destek ekibi. Bu destek sesi yazılmış ilk. sütun. Ben ay gibi daha çok sütun yazmada duyacağız Ahead.

Bu ayın sütun için ben genelleştirme tartışmak için gidiyorum Active Server Pages (asp) ve asp.net, biz de karşılaştığınız sorunlar sorunlar asp, nasıl şeyler ASP 1 x değiştirmiş ve üzerinde ASP 2.0 nedir Genelleştirme ön.

Not Anlamadığınız bir terim geliyorsa, bkz: sözlük Bu sütunun alt bölümü.

ASP genelleştirme sorunları

ASP önce için yapısal destek yoktu Genel kullanıcılar için uygulama geliştirme. Erken geliştirilmesi sırasında Kendim bulundu gibi asp, geliştiricilerin genelleştirme desteği yalnızca dağılmış. işletim sistemleri, tarayıcılar, ASP'ler ve arka uç sistemler. Ancak, biz nadiren Bu uygulamalar arasında herhangi bir otomatik bağlantı gözlenen. Neyse ki biz karakter kümeleri, kod sayfaları, tarayıcı dili gibi kavramları anlamanız, ve bizim için uygulamalar geliştirmek için kullanabileceği yazı tipleri Genel kullanıcılar.

Kategorilere ayırmak zor olacaktır Genelleştirme tüm sorunları bize ASP, görmüş olduğunuz. Bunun yerine, Çeşitli bu konuları ile ilgili kavramlar, bir dizi listesi.

Karakter kümeleri ve kod sayfaları

Hepimiz bizim bilgisayar ekranındaki karakterler yalnızca bilmediğiniz bir bayt dizisi. Bayt serisi oluşturulan ve herhangi bir sayı yorumlanır yollardan. Yorumunu daha farklı bir kodlama kullanıyorsa bayt dizisi ile oluşturulmuş kodlama, yorumunu görüntüler atık olarak. Karakter kümeleri (charsets) genellikle biçimler Kodladığınız tarayıcılar tarafından kullanılır. Sunucu tarafı dönüştürmeleri için daha uygun Codepage özelli?i, yalnızca karakterlerin nasıl birleştirileceğini belirten dönüştürme tablosu kodlanmış.

Geçerli form post veriler tarayıcılar kodla karakter kümesi. Geçerli karakter kümesi "windows-1256" sonra da bayt ise Aktarım Sunucusu ayrıca "windows-1256" kodlanmış

Zaman asp yorumlanır, Form ve Querystring koleksiyonu kodunda başvurulan kadar yerleşik değil. Ne zaman yerleşik olan, şunlara göre Unicode dize verileri dönüştürülmüş Geçerli kod sayfası. (Varsayılan olarak, asp ve ASP tarafından içeriği işlemek Unicode biçimini kullanarak). Doğru kod sayfası belirlemek çok önemlidir Koleksiyonlar başvuran önce; Aksi takdirde Unicode gösterimi bellek doğru olmayacaktır.

Bir kod sayfası belirlemek için Session.Codepage ya da Response.Codepagekullanın. Response.Codepage yalnızca Microsoft Internet Information Services'da kullanılabilir (IIS) 5.1 veya daha sonraki sürümleri. Tamsayı değerleri hakkında bilgi için ( Biz ziyaret etmek için bu özellikleri ayarlamak karakter kümesini karşılık) aşağıdaki Microsoft Web sitesi:
Tanıma karakter kümesi
http://msdn2.microsoft.com/en-us/library/Aa752010.aspx
Örneğin, Arapça için kod sayfası belirlemek için kullanın Aşağıdaki kodu:
Session.Codepage = 1256
Response.CodePage yalnızca geçerli yanıt etkileyecektir. Ancak, Session.Codepage geçerli kullanıcı tarafından yapılan tüm yanıtları etkileyecektir. Zaman Bu özelliklerden birini kullanarak CodePage ayarlayın ve yerleşik olarak Form ve Querystring koleksiyonu bulunur, bu değişikliğin geçerli kod sayfası neden oluyor Unicode geçerli bellek olarak dönüştürmek için Response.Write yöntemini kod sayfası. Bu konu hakkında daha fazla bilgi için aşağıdaki msdn Web sitesini ziyaret site:
(asp) dize dönüştürmeleri için kod sayfas?n? ayarlamahttp://msdn2.microsoft.com/en-us/library/ms525789.aspx
Dağıtım için charsets ilgili sorunları söz konusu olduğunda ve bu istemci charset kod sayfaları ve server kod sayfası eşleşmesi gerekir.

Dilleri kabul

asp Geliştirici bir kullanıcı hangi diller bildirilmesini istiyorsa kendi tarayıcı içinde kullanıcı istediğiniz dillerin listesini bulmak için Request.ServerVariables ("http_accept_language") değişkenini Geliştirici kullanabilirsiniz yanıt olarak, (örneğin, İngilizce, Almanca veya Hint) ve sırasını okuma Kullanıcı bu dillerde görmek ister misiniz tercih. ASP'de benzer bilgiler bir dizi olarak Request.UserLanguages özelliği var. İçin asp kodunda bu bilgileri kullanma hakkında daha fazla bilgi'yi tıklatın. Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
229690Tarayıcının dil ayarlarını her asp yerel ayar kimliği ayarlama hakkında

Internet Explorer'da ayarlar baytlı karakter görüntüleme

Baytlı karakter kümesi gösterebilir yalnızca kodlama biçimi Unicode (utf-8) ' dir. utf-8 ile biz Kiril, Hint ve Japonca görüntüleyebilirsiniz tümü aynı sayfada. utf-8 kullanmayın, biz yalnızca bunlardan birini gösterebilir bir seferde diller. Tarayıcının charset ayarlamak için Response.CharSet özelliğini kullanın.

Bir sayfada statik baytlı karakterler

Doğrudan sayfa içinde saklanan baytlı karakterleri görüntülemek için biz ilk sayfa özel kodlama ile kaydetmeniz gerekir. utf-8 en iyi olacaktır, ancak bir (eşleşen karakter kod sayfası) belirli bir kod sayfası olarak çalışır iyi çalışırlar.

Microsoft Visual InterDev kullanan bir asp dosyası kaydederek işe yaramazsa Buradan itibaren Visual InterDev yalnızca İngilizce ANSI veya UNICODE kaydedebilirsiniz. Herhangi bir asp Unicode asp tarafından desteklenmeyen olarak kaydedilen sayfası.

Microsoft Visual Studio .net, herhangi bir kodlama bir dosyaya kaydedebilirsiniz. Bunu yapmak için iki yol vardır Bu. Varsayılan yol için geçerli kod sayfasını kullanarak dosyayı kaydetmek için ise Kullanıcı. Bir kodlama ile bir dosyayı kaydetmek için ek bir yol aşağıdaki gibidir:
Üzerinde , Dosya menüsünde,'ı tıklatın Dosya olarak kaydetme. İçinde Dosya olarak kaydetme iletişim kutusunda, aşağı açılan oku tıklatın Kaydet düğme. Oku tıklattığınızda Seçenekler şunlardır: Kaydet ve Kodlama ile Kaydet. Tıklattığınızda Kodlama ile Kaydet, Gelişmiş seçenekleriistediğiniz kodlama türünü seçebileceğiniz iletişim kutusu görüntülenir. bilgisayarda yüklü kod sayfaları listesini uygulayın.

Not Bu kaydetme için kodlama değiştirir, ancak işlemdir biri Yalnızca saat. Sonraki kayıt geri varsayılan değere ayarlanır.

Değiştirmek için Varsayılan kod sayfası'nı tıklatın Gelişmiş seçenekleri üzerinde Dosya menü. İçinde Gelişmiş seçenekleriiletişim kutusunda, varsayılan için kaydetme işlemi için kodlama ayarlayabilirsiniz seçtiğiniz kod sayfası.

Bu yöntemler ne dosyasıdır için ilgili disk üzerinde kaydedilir. Ancak, Denetim olarak zaten tartışılan ASP çıkış için biz Session.CodePage ve Response.CharSet özelliklerini ayarlamanız gerekir. IIS 5.1 ve sonraki sürümler, biz Response.CodePage özelliğini de kullanabilirsiniz.

Sunucuda varsayılan kod sayfası

Varsayılan yerel ayarı ve sayfa için varsayılan kod sayfası bağlıdır kayıt defteri ayarları.Varsayılan kullanıcı. Uluslararası anahtar bulabilirsiniz. kayıt defteri kovanı at
HKEY_USERS\.DEFAULT\Control Panel\International
. Biz de davranışını değiştirebilirsiniz Yerel IIS tarafından seçilir. Daha fazla bilgi için "IIS 5.0" bölümüne bakın. Aşağıdaki Bilgi Bankası makalesinde:
306044 Tarih/saat biçimi davranışını Active Server Sayfaları'ndan erişildiğinde farklıdır.
Aynı yerel olarak oturum açan kullanıcı varsa, anahtarı veya sistem varsayılan kullanıcı ayarı alır. önceliği.

Örnek: Varsayılan yerel tarihe sahip 11.1.2004 ayarlanmış biçimi tarih biçiminde (ile aynı yerel ayar kümesi) oturum açmış kullanıcı varken 11/1/2004. 1/11/2004 Ayarı için asp etkili olur.

( asp.net, bu farklılık gösterebilir. Bazı yüklemelerde, aspnet kullanıcı sahip olur, yüklendiği sırada hkey_users altında görünecektir kendi profil. Diğerlerinde ise, onu kullanacaktır.Varsayılan profili. Biz de kod sayfası özniteliği kullanabilirsiniz < % @ %> bildirimi. Bu dosya ile kaydedildiğinde kullanılmalıdır bir farklı kod sayfası 932 (Japonca) gibi varsayılan kodlama).

Yazı tipi dönüştürme sorunları karşılaştırmalı CodePage sorunlar: hangi olduğu?

Bazen, bir soru işareti (?) karakteri ya da bir kutu görebilirsiniz nerede bir karakter görünmesi beklenir.
Kod sayfası dönüştürme sorunları
Ne zaman bir karakter, soru işareti (?) karakteri ile değiştirilir, Bu kod sayfası dönüştürme sorun oluştuğunu bir göstergesidir. , Varsayılan karakter kod sayfası dönüştürme için soru işareti (?) olan ve temel işletim sistemini nasıl işleneceğini emin değilseniz anlamına gelir değer karakter ve dönüştürün. Bir soru ile karakter değeri yerini alır işareti (?). Bu karakter için geçersiz bir değer olduğu anlamına gelebilir kod sayfası veya kod sayfası dönüştürme için gerekli olmadığını yüklü.
Yazı tipi dönüştürme sorunları
Bir karakter kutusu tarafından değiştirildiğinde bu sürüp sürmediğini, yazı tipi dönüştürme sorun oluştu. İstemci tarafında böyle olduğunda İstemci bu karakteri görüntülemek için doğru fontun yüklü değil doğru. Örneğin, bir karakter olduğunda Japonca karakter kümesi ve İstemcinin Japonca yazı tipleri yüklü olmadığı, Japonca karakter. bir kutu olarak görüntülenir.

Daha sonra ben nasıl şeyler de değişti hakkında söz edece?iz ASP 1.x ve bu değişiklikler genelleştirme sorunları bağlamında nasıl etkiler ASP.

ASP 1.x genelleştirme sorunları:

ASP ile üç harika şeyler sunulmuştur:
  • <globalization>Web.config dosyasında etiket</globalization>
    <globalization>Etiket bize merkezden alır tutarsız kavramları kod sayfaları ve charsets ve sağlar bize çoğunu kontrol ASP içindeki türevleri.</globalization>
  • System.Globalization ad alanı
    Genelleştirme ad alanı bize programlama sağlar Genelleştirme işleme gücü.
  • Kaynak dosyaları kavramı önemli ölçüde iyileştirilmiştir.
    Biz biz kullanılacak şekilde kaynak dosyaları ile ilgilenme yoktur asp. Şimdi, biz tasarlarken kaynak dosyaları xml dosya biçiminde olan ve bunları geliştirmek ve çalışma zamanında çeviren olarak kalırlar.
Genelleştirme yapılandırma etiketi:

Etiketi içinde iki önemli ayarları aşağıdaki gibidir:
<globalization 
            requestEncoding="utf-8" 
            responseEncoding="utf-8"  />
Diğer olası ayarlar alanlar aşağıdaki gibidir:
Bu tabloyu kapaBu tabloyu aç
fileEncoding.Aspx için varsayılan kodlamayı belirtir, .asmx ve .asax dosya. Unicode ve utf-8 dosyaları bayt sırası işareti ile kaydedilen otomatik olarak tanınan, bakılmaksızın önekiyle (imza) olacaktır fileEncodingdeğeri.
KültürGelen Web işlemek için kullanılan varsayılan kültür değerini belirtir. (System.Globalization uygun sınıfların yöntemlerde istekleri ad alanı).
uiCultureİşlem için kullanılan varsayılan kültür değerini belirtir. yerel ayara bağımlı kaynak aramalarını (uydu derlemelerinin).
(Değerleri, kültür ve uiculture) culture dizeleri hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
System.Globalization.CultureInfoClass
http://msdn2.microsoft.com/en-us/library/System.Globalization.cultureinfo (vs.71) .aspx
Yanıt sonra bu ayarlar ASP tarafından uygulanır eksiksiz ve istek önce uygulamanız için teslim. İçin responseEncoding, çıkış depolamak için oluşturulan arabellek için ayarlanmıştır kodlama. Bu arabelleğe gider her şey şunlara göre kodlanması arabelleğe ayarı olarak eklenir.

RequestEncoding için çalışma zamanı isteği okuyabilecek ve ayarına göre yorumlamak Bu bölümde. Bu sorunlara neden olabilir ancak bir ayardır. Tablo Aşağıda geçerli utf-8 bayt sıra bit düzenini gösterir.

ASCII 7 bit karakter değerine denk geliyorsa Standart, bayt değeri değiştirilmez. 127 Değerse gerekir aşağıdaki kuralları izleyin. Önde gelen bit kümesi kaç karakter olduğunu gösterir sırayla. İlk ayarlamak ilk bit ile başlamalı sonra her bayt 1.

utf-8 bayt düzeni:
Bu tabloyu kapaBu tabloyu aç
Bayt sayısı BITSgösterim
1 7 0vvvvvvv
211110vvvvv 10vvvvvv
3161110vvvv 10vvvvvv 10vvvvvv
4 2111110vvv 10vvvvvv 10vvvvvv 10vvvvvv
Sorun muhasebenin budur. Tarayıcı, kodlar tek bayt kodlaması (ISO-8859-1 gibi) göre isteği, değerler 127 yukarıdaki düzeni saatine geçerli olmayacaktır. Ne zaman onlar içine okuma utf-8 arabellek geçersiz karakterler sadece çıktısı bıraktı.

Çalışma zamanı kodlama değişiklikleri

Application_BeginRequest olay biz requestEncoding değerini değiştirebilir ve bu İstek işlenmeden önce etkili olur. Yanıt, çıktısını kodlamasını değiştirmek için son bir şans Page_PreRender olaydır. Response.Write biz, çağrı gibi bu arabelleğe karakterleri koyacaktır Not Bu nedenle de emin Response.Writekullanmadan önce kümesi kodlamasını hakkına sahip.

Özgün verilerle olan Unicode olmayan: hala Internet Explorer baytlı charsets yorumlamak nasıl oluşturulur?

ASP için gerekiyorsa, asp gibi davranmasına de vermiyoruz. Yapmak için Bu durum, biz requestEncoding ve responseEncoding windows-1252 (bir daha eksiksiz ISO-8859-1'den kodlama) ayarlayın ve metin doğru olarak görüntülemek için Response.Charset özelli?ini kullan?n yapmanız gerekir. Bu çalışır çünkü Windows-1252 tek baytlık bir kodlama düzeni ve herhangi bir bayt değiştirmez arabelleğe eklenir. Bu nedenle, çift baytlı karakterler serisi olarak gönderilir tek bayt sayısı. Biz daha sonra nasıl yorumlanacağı bayt Internet Explorer anlayabilirsiniz Response.Charset özelli?ini kullanarak. Bu senaryonun özgün veri olduğunda, gerekli olabilir Unicode veya utf-8 olarak dönüş değeri bir com nesnesinin gibi depolanmamış veya verileri Microsoft sql Server olmayan n bir alanda (örneğin, varchar) depolanır.

sql Server ve ASP genelleştirme sorunları

sql Server Unicode veri girişi
sql Server verilerini depolamak için en iyi yolu Unicode kullanmaktır. Varsa bile en az bir Unicode olma olasılığı olduğunda INSERT, update, vb., kullanıyoruz Veri, biz değerinden önce n eklemeniz gerekir. Bu veritabanı değerini bildirir Unicode. ado nesneleri buna iyi bir örnek olur. Bunlar bunu otomatik olarak Biz yeni kayıtlar eklemek için Recordset nesnesi kullanıyorsanız.

Aşağıda bir örnek verilmiştir:
INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)
Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"
sql Server giriş tarihi/saati
Genellikle biz kültür ve yerel ayar kimliği hakkında bilgiye sahip tarih/saat bizim ASP uygulaması içinde algılanıyor. Ancak, sırasında iletme ve dış kaynaklardan gelen ve tarih/saat veri çekerken, biz çalıştırın tarih/saat biçimleri misinterpreting riski. Bunun nedeni, biz her zaman olamaz kültür ve yerel olarak bulunan aynı olacak şekilde dış kaynak garanti Bizim uygulama. sql Server'da bu ' geçerli Dil' kullanılarak çözülebilir connectionstring sql veritabanına kurulmasını bağlantı özniteliği. Biz yapabilirsiniz kültür bizim uygulamasında olduğu gibi aynı dil ayarında connectionstring sağlar. Bu bize karşı korur riski misinterpretation, çünkü sql Server her zaman kabul eder ve gönderir Tarih/rıza verilerde yukarıda belirtilen ayarlarla saat.

System.Globalization ad alanı

Bu ad Globalizasyon ve yerelleştirme içinde merkezidir NET Framework. Bu ad boşluğunda kullanılan ana sınıfı CultureInfo sınıfıdır. Kültür özgü bilgiler gibi tutan tarih/saat biçimi, sayı biçimleri, bilgileri karşılaştırma ve metin bilgileri. CultureInfo sınıfı hakkında daha fazla bilgi için aşağıdaki msdn Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/System.Globalization.cultureinfo (vs.71) .aspxcultureinfo

Nötr kültürler belirli kültürler karşılaştırması

Bağımsız kültür bir dil ile ilişkilendirilmiş olan bir kültür değil, ancak değil belirli bir ülke veya bölge. Belirli bir kültür ilişkili olduğu her ikisi de bir dil ve belirli bir ülke.

Örnek: "de" (nötr kültür) Almanca dil sürümü için ancak "de-at" (özel kültür) için Almanca olarak, Avusturya konuşulur. Nötr kültürler için kullan?lamaz. biçimlendirme.

Geçerli iş parçacığı ve kültür bilincini .net Framework sınıfları

Tüm sınıflar ve yöntemler .net Framework Kitaplığı'nda nerede biz Çıkış olmasını beklediğiniz gibi kültür bağımlı olan iki yerleşik davranışlar:
  • Bize sağlama sırasında kültür kodu belirtmek istiyorum bağımsız çıkış belirtilen kültür dayalı. Bu İsteğe bağlı.
  • Bu unutulan varsa (genellikle durumda), sınıflar Akıllı yeterince Thread.CurrentThread.CurrentCulture özelliği ve iş göre çeke tutmak.
Bu özelliğin değeri benzer kodu ile değişiklik yapabilirsiniz Aşağıdaki:
    Dim ci As CultureInfo
        ci = New CultureInfo("de-AT")
        Thread.CurrentThread.CurrentCulture = ci
Bu kod örneğinde Almanca dil ve "at" "de" temsil eder Avusturya temsil eder. Bu nedenle, bu örnekte, DateTime.Now() .ToString yöntemi dönüş tarih ve saat biçimi ilgili Almanca dil, tarih ve saat ifade biçimi Avusturya.

CurrentCulture özelliği her zaman başlatılan framework (gibi) sağlar:
  1. Her şey programlı olarak ayarlanır.
  2. Programcı tarafından açıkça ayarlanmamıştır göz önünde bulundurarak yapılandırma dosyaları (<globalization> özelliği Çekildi Etiket).</globalization>
  3. Özellik yoksa, kültür açıktır hangi Web sunucusu çalışıyor. Bu genellikle, nötr, kültür işletim sisteminin diline karşılık gelir.

Kaynak dosyaları

Tüm .resx, .resource dosyaları ve Visual Studio .net, ASP projesinde eklenen Katıştırılmış kaynak kümesi Oluşturmak Action özniteliği olan dosyaları otomatik olarak derlenmiş ve bir parçası olarak uygulama derlemesi içinde gömülü kendi bildirim. Bu hatta el ile kaynak dosya Oluşturucusu'nu kullanarak yapılabilir Visual Studio .net komut istemi yoluyla (tarafından otomatik olarak oluşturuldu) yardımcı programı. Daha fazla bilgi için aşağıdaki msdn Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ccec7sz1 (vs.71) .aspx
Bunun için gerektiğinde ilgili genel bir kavram olduğunu Genelleştirme için ilgisiz uygulama kaynaklarını yönetme. Bununla birlikte, ne zaman Biz genelleştirme uyguluyorsanız, uydu derlemelerinin kullanmanız gerekir.

Uydu derlemelerinin

Bir ASP uydu derlemelerinin kullanılabilir ne zaman proje, Aşağıdaki doğru olduğundan emin olun:
  1. Tüm aspx dosyalarında tüm kullanıcı arabirimi öğeleri gerekir kimliği ve runat ile donatılmış = server öznitelikleri.
  2. Biz ayrı .resx dosyası oluşturun. Her biri karşılık gelmelidir Her kültür bizim uygulama destek istiyoruz.
  3. Bu dosyalar için ortak ad karar vermelisiniz Örneğin 'Dizeleri'.
  4. Biz aşağıdaki adlandırma ile ayrı .resx dosya adı Kuralı commonfirstname. regioncode DilKodu.resx (örneğin: Strings.de-AT.resx Strings.en-GB.resx).
  5. Kaynak dosyası olması gerekircommonfirstnameTüm sahiptir .resx (Strings.resx) istediğimiz gibi dizeleri varsayılan durumda görüntülenir.
  6. Kullanıcının kültür algılamak ve ona uyacak şekilde Thread.CurrentThread.CurrentUICulture özelliğini ayarlamak için kod yazmak.
  7. Kaynakları ResourceManager sınıfını kullanarak yüklemek için kod yazmak.
  8. Yüklenen nesnesinden dizeleri ayıklamak için kod yazabilir ve bunları kullanıcı arabirimi öğeleri atayın.
Bu adımları tamamladığınızda Visual Studio.NET olacaktır. Strings.resx derlemek ve uygulama derlemesinin içine Göm (MyGlobalizationTestProjectName.dll). ancak, tüm diğer .resx dosyalar için onu ancak yalnızca çalıştırılabilir kod içermeyen ayrı dll dosyaları oluşturur Kaynak veriler. Bunlar gerçekte uydu derlemelerinin olarak adlandırılır. Ayrıca, görsel Studio .net bu klasör yapısındaki aşağıdakine benzer yerleştirir:
MyGlobalizationTestProjectName
        |------- bin
                |------en-US
                        MyGlobalizationTestProjectName.resources.dll
                |------ja-JP
                        MyGlobalizationTestProjectName.resources.dll
                |------de-AT
                        MyGlobalizationTestProjectName.resources.dll

CurrentCulture ile CurrentUICulture arasındaki fark

Çıktılarını vermek için Thread.CurrentThread.CurrentCulture özelliği System.Globalization ad alanındaki sınıfların yöntemlerini bağlıdır, ancak kaynak derleme yükler ResourceManager sınıfı uygun uydu derleme yükleme için Thread.CurrentThread.CurrentUICulture özelliğine dayanır. , C# kodu örneği aşağıda verilmiştir:
using System.Globalization;
using System.Threading;
using System.Resources;

//Load resources. 
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);	

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.   
Thread.CurrentThread.CurrentCulture =  CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e) 

{ 

 if (!IsPostBack)  
 
 {      
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
   }

 }

Sipariş, ASP uydu derlemelerinin seçer:

İş parçacığının CurrentUICultureayarladığınızda, eşleşen kaynaklar ASP otomatik olarak seçer. aşağıdaki sırayla:
  • Bir uydu derleme ile eşleşen bir kültür bulunursa, Bu derleme kaynaklardan kullanılır.
  • Bir uydu derleme ile nötr bir kültür bulunursa CurrentUICulture, uyan, o derlemesinden kaynakları kullanılır.
  • CurrentUICultureiçin bir eşleşme bulunamazsa, yürütülebilir bir derlemede depolanan geri dönüş kaynaklardır kullanılır.
Not Bu daha genel kaynak düşürme işlemi temel alır. İçin Daha fazla bilgi için aşağıdaki msdn Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/sb6a8618 (vs.71) .aspx

Uydu derlemelerinin el ile oluşturma:

Bu uydu derlemelerinin kullanımını nerede ise Visual Studio .net Derlemeler kendisi oluşturur. Visual Studio .net kesin ad uydu değildir. Varsayılan olarak, derlemeler ancak. Bu seçenekleri değiştirmek isterseniz, yaptığınız uydu derlemelerinin el ile oluşturmanız gerekir. Daha fazla bilgi için ziyaret edin aşağıdaki msdn Web sitesi:
http://msdn2.microsoft.com/en-us/library/21a15yht (vs.71) .aspx
.

ASP 2.0 ile genelleştirme ön nedir?

ASP ve tür sorunları, yaygın kullanımı, biz göreceğiniz genelleştirme göre ASP 2.0 özellikleri hala bazı İleriyi uzaklık. Ancak, bunun ne kısa bir göz atın iyi olur Genelleştirme metodoloji web için başlı yönü uygulamaları.

Genelleştirme ASP 2.0 desteği undergone bir Radikal değişim ve Web geliştiricileri verildiği yapabilme yeteneği Yerelleştirme Web uygulamalarının olarak kadar kolay olduğu için Windows tabanlı uygulamaları. Temeli olan özelliklerin listesi aşağıdadır Genelleştirme metodolojisi, ASP 2.0:

Kaynak türü kesin olarak belirtilmiş .net Framework 2. 0'ın özünde desteğini sürümüdür geliştiricilere IntelliSense ile sağlayan kesinlikle yazılı kaynakları ve Çalışma zamanında kaynaklara erişmek için gereken kodu basitleştirir.

Yönetilen kaynak Düzenleyicisi Visual Studio .net 2.0 ile daha iyi yeni bir kaynak Düzenleyicisi içerir oluşturma ve yönetme dizeler, resimler de dahil olmak üzere kaynak girişlerini desteği, harici dosyalar ve diğer karmaşık türler.

Web formları için kaynak oluşturma Windows Forms geliştiriciler faydaları kullanılabilen Otomatik uluslararası duruma getirme. Visual Studio .net 2005 şimdi hızlı desteği Uluslararası kaynaklar Web formları için otomatik olarak oluşturma tarafından kullanıcı denetimleri ve ana sayfalar.

Geliştirilmiş çalışma zamanı desteği ResourceManager örnekleri, çalışma zamanı tarafından ve kolaylıkla yönetilir. Sunucu kodu daha erişilebilir programlama yoluyla erişilebilir arabirimleri.

Yerelleştirme ifadeler Web sayfaları için modern bildirimsel ifadeler eşleştirmesi desteği denetim özellikleri, html özellikleri veya statik içerik kaynak girişleri bölgeler. Bu ifadeler de Genişletilebilir ek yollar sağlama html çıktı için yerelleştirilmiş içerik ekleme işlemini kontrol eder.

Otomatik kültür seçimi Her Web isteği için kültür seçimi yönetme olabilir Tarayıcı tercihleri otomatik olarak bağlantılı.

Kaynak sağlayıcı modeli Ana bilgisayar kaynaklarına geliştiricilerin yeni bir kaynak sağlayıcı modeli sağlar Düz dosyalar ve veritabanı tabloları gibi diğer veri kaynaklarında iken Bu kaynaklara erişmek için bir programlama modeli kalır tutarlı.

Genelleştirme metodolojisi hakkında daha fazla bilgi için NET 2.0, aşağıdaki msdn Web sitesini ziyaret edin:
NET 2.0 yerelleştirme özellikleri: Web uygulamalarının yerelleştirme için yepyeni bir yaklaşım
http://msdn2.microsoft.com/en-us/library/ms379546 (vs.80) .aspx

Sonuç

Tüm, asp ve ASP genelleştirme sorunlar hakkında şimdilik. Bu makalede, bunların genelleştirme giderme birkaç belirlemelerine yardımcı olacak umut asp ve Microsoft Destek'e başvurun aktarmayı önce ASP sorun. Ben olur Aşağıdaki düşüncesi ile biter:

"Nerede ve her misiniz geliştirme, milyonlarca kişi etrafında empower düşünün Dünya. Çözümlerinizi dünya için hazır olun! Microsoft Araçları ve teknolojileri Uluslararası daha kolay."

Yukarı gelecek ay ile yeniden yakalar başka bir ilginç konu.

Zaman için teşekkür ederiz.
ASP genelleştirme sorunları hakkında daha fazla bilgi ve asp.net, aşağıdaki Microsoft Web sitelerine bakın:
SetLocale ve vbscript GetLocale
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx
Genelleştirme adım adım
http://msdn.microsoft.com/en-us/goglobal/bb688110
Global gidin: Yerelleştirme dinamik Web uygulamaları ile IIS 5.0 ve sql Server
http://msdn.microsoft.com/msdnmag/issues/01/05/Global/default.aspx
Genel gidin: asp tabanlı Web sitenize destek genelleştirme tasarlama
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx
315616 Active Server sayfaları sayfası IIS istemci dili algılamaya nasıl
http://support.microsoft.com/?id=315616
Yerel ID(LCID) grafik
http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx
System.Globalization ad alanı
http://msdn2.microsoft.com/en-us/library/System.Globalization (vs.71) .aspx
Kaynaklar ve NET Framework sdk kullanılarak yerelleştirme
http://msdn2.microsoft.com/en-us/library/aa309421 (vs.71) .aspx
ASP uygulamaları kaynakları
http://msdn2.microsoft.com/en-us/library/1ztca10y (vs.71) .aspx
ASP <globalization>yapılandırma öğesi
</globalization>http://msdn2.microsoft.com/en-us/library/hy4kkhe0 (vs.71) .aspx
Tasarım ve uygulama yönergeleri Web istemcileri - Globalizasyon ve yerelleştirme
http://msdn2.microsoft.com/en-us/library/ms978628.aspx
Resmi Microsoft site – dünya çapında geliştirme ve bilgi işlem Portalı
http://msdn.microsoft.com/en-us/goglobal/bb688096
Dünya çapında kullanıma hazır uygulamaları geliştirme
http://msdn2.microsoft.com/en-us/library/h6270d0z (vs.71) .aspx
Genelleştirme mimarisi için ASP.
http://msdn2.microsoft.com/en-us/library/aa478974.aspx
Yerelleştirilmiş Microsoft ASP uygulamaları geliştirme için Kurumsal yerelleştirme Toolkit-
http://msdn2.microsoft.com/en-us/library/aa479334.aspx
Microsoft tipografi
http://www.microsoft.com/typography/default.mspx
839861 Yerelleştirilmiş bir kaynağa erişmeye çalıştığınızda System.Resources.MissingManifestResourceException özel durum oluşur.

Terimler sözlüğü

ANSI Amerikan Ulusal Standartlar Enstitüsü için anlamına gelir. Bu konuda İçerik, belirli bir dil/karakter için belirli bir kod sayfasını temsil ettiği ayarlayın. Çoğunlukla İngilizce codepage (windows-1252) başvurur.

ASCII Bir 1 bayt (veya 7 bit) kodlama şeması. Yalnızca karakter Aralık 0-127 arasında standart. 128-255 Aralığında ASCII uzantıları olan ve olmayan Standart bir parçası. Bu üst arasındaki farkı örneğidir çeşitli oem ASCII tablosu ve vb ASCII tablosu.

Karakter kümesi Çoğunlukla Internet Explorer ve tarayıcılar için söyleyen kullanılan ayarlama tarayıcı karakter verileri yorumlama. Örnek: Response.charSet = "ISO-8859-1."

Kod sayfası Karakterleri nasıl kodlanmış belirten dönüştürme tablosu (genellikle sunucular için kullanılır).

Genelleştirme Genelleştirme tasarlama ve oluşturma işlemi olan bir Uygulama, kültür, bölge ya da ulusal benzersiz gereksinimleri ve dilbilimsel ihtiyaçlarını karşılanması. Diğer bir deyişle bir uygulamayı tasarlama bir Bunu daha sonra çevrilebilir olduğunu genelleştirme yoludur.

Yerel ayar/kültür Dil ve bölge belirli biçimleri/dahil olmak üzere Tercihler, tarihi ve saat biçimleri, para birimi biçimleri casing, sıralama, Takvim biçimleri ve dize karşılaştırma, adres biçimlerini, telefon sayı biçimleri, kağıt boyutları, birimi Ölçü, yazma yönü, vs.

LocaleID (LCID) Dil belirten dword değeri tanımlayıcı ve sıralama Kimliği, tarih/saat vb. ex belirli bölge biçimleri belirtmek için kullanılabilir şunlara göre biçimlendirilmiş olması.

Yerelleştirilebilir Talep edilen içerik sunmak için bir uygulama yeteneği dil/yerel.

Yerelleştirme Yerelleştirme, kullanıcı arabirimine çevirme işlemidir Belirli diller ve/veya yerel ayarlar.

Çok baytlı karakter kümesi Bir karakter kümesi olan karakterlerden oluşan iki ya da Japonca gibi daha fazla bayt sayısı. utf-8, bu kategori altında yer alıyorsa. (Unicode Teknik olarak ise bu kategori, ancak Windows, onu kendi vardır Kategori.)

Unicode 2 Baytlık bir kodlama düzeni. Windows, kendi içinde Unicode kullanır. Herhangi bir Unicode için özellikle API'leri tarafından "w" işlevi ucundaki signified adı. Geniş karakter olarak da bilinir; doğrudan web üzerinden kullanılamaz uygulamaları.

utf-8 Burada bir karakter 1-6 tarafından temsil edilebilir bir karakter kodlaması bayt sayısı. Windows, 1-3 bayt aralığı. NT4 altında web için desteklenmiyor. uygulamaları. Daha fazla bilgi için bilgi, makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın Microsoft Knowledge Base:
175392UTF8 desteği

Geniş karakter kümesi Unicode için bir diğer ad. dbcs (çift baytlı karakter olarak da bilinir ayarlama,) ucs-2, utf-16.
Her zamanki gibi konular üzerinde istediğiniz fikirler gönderin çekinmeyin Gelecekteki sütunlara veya Knowledge Base kullanarak ele Bunun için sor formu.

Özellikler

Makale numarası: 893663 - Last Review: 19 Temmuz 2012 Perşembe - Gözden geçirme: 2.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Active Server Pages 4.0
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 2.0
Anahtar Kelimeler: 
kbaspnet kbhowto kbasp kbmt KB893663 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 893663

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com