Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

ASP.NET Röstkolumn för support

För att anpassa den här kolumnen efter dina behov ber vi dig att skicka in dina idéer om ämnen som intresserar dig och problem som du vill se i framtida Knowledge Base-artiklar och Support Voice-kolumner. Du kan skicka dina idéer och feedback med hjälp av formuläret Fråga om det. Det finns också en länk till formuläret längst ned i den här kolumnen.

Inledning

Välkommen! Det här är Sukesh Khare med Microsoft ASP.NET Developer Support-teamet. Det här är första gången jag har skapat en kolumn för Support Voice. Jag ser fram emot att skriva fler sådana kolumner under de kommande månaderna.

För den här månadens kolumn ska jag diskutera globaliseringsproblem i Active Server Pages (ASP) och ASP.NET, de problem vi står inför i ASP, hur saker och ting har förändrats i ASP.NET 1x och vad som händer med ASP.NET 2.0 på globaliseringsfronten.

Obs! Om du stöter på en term som du inte förstår kan du läsa avsnittet Ordlista längst ned i den här kolumnen.

Globaliseringsproblem i ASP

Innan ASP.NET fanns det inget strukturerat stöd för utveckling av program för globala användare. Under den tidiga utvecklingen av ASP fann utvecklare som jag bara ett utspritt stöd för globalisering i operativsystem, webbläsare, ASP:er och backend-system. Men vi har sällan sett någon automatisk anslutning i de här programmen. Som tur var förstod vi begrepp som teckenuppsättningar, kodsidor, webbläsarspråk och teckensnitt som vi kunde utnyttja för utveckling av program för globala användare.

Det skulle vara för svårt att dela upp i kategorier alla globaliseringsfrågor som vi i ASP.NET har sett. I stället ska jag lista en serie begrepp som relaterar till en mängd olika frågor.

Teckenuppsättningar och kodsidor

Vi vet alla att tecknen på datorskärmen bara är en serie byte. Byte-serien kan skapas och tolkas på många olika sätt. Om tolkningen använder en annan kodning än den kodning som bytematrisen skapades med visas tolkningen som skräp. Teckenuppsättningar (teckenuppsättningar) är kodningsformat som vanligtvis används av webbläsare. Egenskapen Codepage, som är mer tillämplig för serverbaserade konverteringar, är bara en konverteringstabell som anger hur tecken kodas.

Webbläsare kodar formulärets postdata enligt den aktuella teckenuppsättningen. Om den aktuella teckenuppsättningen är "windows-1256" kodas byteöverföringen till servern också som "windows-1256".

När ASP tolkas skapas inte formulär- och frågesträngsamlingarna förrän de refereras till i kod. När de skapas omvandlas strängdata till Unicode enligt den aktuella kodsidan. (Som standard bearbetar både ASP och ASP.NET innehåll med Unicode-format). Det är mycket viktigt att du anger rätt kodsida innan du refererar till samlingarna. annars stämmer inte Unicode-representationen i minnet.

Om du vill ange en kodsida använder du Session.Codepage eller Response.Codepage. Sidan Response.Code är endast tillgänglig i Microsoft Internet Information Services (IIS) 5.1 eller senare versioner. Information om heltalsvärdena (som motsvarar teckenuppsättningen) som vi ställer in dessa egenskaper på finns på följande Microsoft-webbplats:

Teckenuppsättningsigenkänning
http://msdn2.microsoft.com/en-us/library/Aa752010.aspxOm du till exempel vill ange kodsidan för arabiska använder du följande kod:

Session.Codepage = 1256

Response.Codepage påverkar bara det aktuella svaret. Session.Codepage påverkar dock alla svar som gjorts av den aktuella användaren. När kodsidan anges med någon av dessa egenskaper och formulär- och frågesträngsamlingarna skapas, gör den här ändringen på den aktuella kodsidan att metoden Response.Write omvandlar Unicode i minnet till den aktuella kodsidan. Mer information om det här avsnittet finns på följande MSDN-webbplats:

Ange kodsidan för strängkonverteringar (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspxNär det gäller problem relaterade till teckenuppsättningar och kodsidor är det klientkoduppsättningen och serverkodsidan som ska matchas.

Acceptera språk

Om en ASP-utvecklare vill veta vilka språk en användare har angett i sin webbläsare kan utvecklaren använda variabeln Request.ServerVariables ("HTTP_ACCEPT_LANGUAGE") för att hitta listan med språk som användaren vill läsa svaret på (till exempel engelska, tyska eller indiska) och den prioritetsordning som användaren vill se dessa språk i. I ASP.NET finns liknande information i egenskapen Request.UserLanguages som en matris.
Om du vill ha mer information om hur du använder den här informationen i ASP-kod klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:

229690 Så här anger du ASP-språk-ID enligt webbläsarens språkinställningar
 

Visa teckenuppsättningar med flera byte i Internet Explorer

Det enda kodningsformatet som kan visa en teckenuppsättning med flera byte är Unicode (UTF-8). Med UTF-8 kan vi visa kyrilliska, indiska och japanska på samma sida. Om vi inte använder UTF-8 kan vi bara visa ett av dessa språk åt gången. Om du vill ange webbläsarens teckenuppsättning använder du egenskapen Response.CharSet.

Statiska tecken med flera byte på en sida

Om du vill visa tecken med flera byte som lagras direkt på sidan måste vi först spara sidan med specifik kodning. UTF-8 är bäst, men en specifik kodsida (matchad med teckenkoden) fungerar också.

Att spara en ASP-fil med Microsoft Visual InterDev hjälper inte här, eftersom Visual InterDev bara kan sparas på ANSI-engelska eller Unicode. Asp-sidor som sparats som Unicode stöds inte av ASP.

I Microsoft Visual Studio .NET kan du spara en fil med valfri kodning. Det finns två sätt att göra detta. Standardsättet är att spara filen med hjälp av användarens aktuella kodsida. Ett annat sätt att spara en fil med en kodning är följande:
Klicka på Spara fil somArkiv-menyn. Klicka på pilen
i listrutan på
knappenSpara i dialogrutanSpara fil som. När du klickar på pilen är
alternativenSpara och Spara med kodning. När du klickar på
Spara med kodning visas dialogrutan Avancerade alternativ för sparande där du kan välja vilken typ av kodning du vill använda i en lista med de kodsidor som är installerade på datorn.


Obs! Det här ändrar kodningen för spara-åtgärden, men är endast en gång. Nästa sparande ställs in på standardinställningen.

Om du vill ändra standardkodsidan klickar du på Avancerade alternativ för
spara påArkiv-menyn. I dialogrutan Avancerade spara alternativ kan du ange standardkodning för sparande åtgärder till valfri kodningssida.

De här metoderna är relaterade till hur filen sparas på disken. Men för att styra utdata för ASP, som redan diskuterats, måste vi ange egenskaperna Session.CodePage och Response.CharSet. Med IIS 5.1 och senare versioner kan vi också använda egenskapen Response.CodePage.

StandardKODSIDA på server

Standardspråket och standardkodsidan för sidan beror på registerinställningarna för . STANDARDanvändare. Vi kan hitta den internationella nyckeln på registerkupa HKEY_USERS\.DEFAULT\Control Panel\International. Vi kan också ändra beteendet för det språk som väljs av IIS.

Om den inloggade användaren har samma nationella inställningar som ovanstående nyckel eller systemets standardinställning har användarinställningen företräde.

Exempel: Standardspråket har datumformatet 11.1.2004, medan den inloggade användaren (med samma språkinställning) har datumformatet 2004-11-01. Inställningen 2004-11-01 börjar gälla för ASP.

(För ASP.NET kan det variera. I vissa installationer har ASPNET-användaren en egen profil som visas under HKEY_USERS när den läses in. I andra länder används . STANDARDprofil. Vi kan också använda attributet codepage i deklarationen <%@ %>. Detta bör användas när filen sparas med en annan kodning än standardkoden, till exempel kodsida 932 (japanska)).

Problem med kodsida jämfört med problem med teckensnittskonvertering: vilket är vilket?

Ibland kan du se ett frågetecken (?) eller en ruta där ett tecken ska visas.

Problem med konvertering av kodsidor

När ett tecken ersätts med ett frågetecken (?) är det här en indikation på att ett problem med konvertering av kodsidor har inträffat. Frågetecknet (?) är ett standardtecken för konvertering av kodsidor och innebär i princip att operativsystemet inte vet hur teckenvärdet ska hanteras och konverteras. Det ersätter teckenvärdet med ett frågetecken (?). Det kan innebära att tecknet har ett ogiltigt värde för kodsidan eller att den kodsida som behövs för konverteringen inte är installerad.

Problem med teckensnittskonvertering

När ett tecken ersätts av en ruta är det här en indikation på att ett problem med teckensnittskonvertering har inträffat. Detta inträffar på klientsidan när klienten inte har rätt teckensnitt installerat för att visa tecknet korrekt. Om ett tecken till exempel kommer från den japanska teckenuppsättningen och klienten inte har de japanska teckensnitten installerade visas det japanska tecknet som en ruta.

Sedan ska jag prata om hur saker och ting har ändrats i ASP.NET 1.x och hur dessa ändringar påverkar globaliseringsproblem inom ramen för ASP.NET.

Globaliseringsproblem i ASP.NET 1.x:

Med ASP.NET introducerades tre fantastiska saker:

  • Taggen> <globalisering i web.config fil
    Den <globalisering> taggen tar oss bort från de osammanhängande begreppen kodsidor och teckenuppsättningar och låter oss styra de flesta varianterna inom ASP.NET.

  • System.Globalization-namnrymden
    Globaliseringsnamnrymden ger oss den programmatiska kraften i att hantera globalisering.

  • Begreppet resursfiler har förbättrats avsevärt.
    Vi hanterar inte resursfiler på det sätt som vi brukade göra i ASP. Nu är resursfilerna i form av XML-filer när vi utformar och utvecklar dem, och de finns som monteringar vid körning.

Konfigurationstaggen globalisering:

Två viktiga inställningar i taggen är följande:

<globalization 
            requestEncoding="utf-8" 
            responseEncoding="utf-8"  />

Andra möjliga inställningsområden följer:

fileEncoding

Anger standardkodning för .aspx-, .asmx- och .asax-filparsning. Unicode- och UTF-8-filer som sparats med byteordningsmarkeringsprefixet (med signatur) identifieras automatiskt, oavsett filkodningens värde.

Kultur

Anger standardkulturen för bearbetning av inkommande webbbegäranden (gäller på metoder för klasser från System.Globalization-namnrymden).

uiCulture

Anger standardkulturen för bearbetning av språkberoende resurssökningar (satellitsammansättningar).

Mer information om kultursträngar (kulturvärden och gränssnitt) finns på följande Microsoft-webbplats:

System.Globalization.CultureInfoClass
http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxDe här inställningarna tillämpas av ASP.NET när svaret har slutförts och innan begäran lämnas till ditt program. För responseEncoding anges den buffert som skapas för att lagra utdata till den här kodningen. Allt som hamnar i bufferten kodas enligt inställningen när den infogas i bufferten.

Vid kodning av begäran Läser runtime begäran och tolkar den enligt inställningen i det här avsnittet. Det här är dock en inställning som kan orsaka problem. I tabellen nedan visas bitlayouten för en giltig UTF-8-bytesekvens.

Om teckenvärdet ligger i ASCII 7-bitarsstandarden ändras inte bytevärdet. Om värdet är över 127 måste det följa reglerna nedan. Den inledande uppsättningen bitar visar hur många tecken som finns i sekvensen. Varje byte efter den första måste börja med den första biten inställd på 1.

UTF-8 byte layout:

Byte

Bitar

Representation

7

0vvvvvvv

11

110vvvvv 10vvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvv

4

21

11110vvv 10vvvvvv 10vvvvvv 10vvvvvv

Det är här problemet kommer. Om webbläsaren kodar begäran enligt en kodning med en enda byte (t.ex. iso-8859-1) är värdena över 127 inte giltiga enligt layouten ovan. När de läse in i UTF-8-bufferten tas de ogiltiga tecknen helt enkelt bort från utdata.

Ändringar i runtime-kodning

I den Application_BeginRequest händelsen kan vi ändra värdet för begäranKodning och få den att börja gälla innan begäran bearbetas. För svaret är händelsen Page_PreRender sista chansen att ändra kodningen av utdata. Observera också att Response.Write placerar tecken i den här bufferten så snart vi kallar det, så se till att ha rätt kodning inställd innan du använder Response.Write.

Ursprungliga data är inte Unicode: Hur gör man fortfarande för att Få Internet Explorer att tolka teckenuppsättningar med flera byte?

Vi kan också få ASP.NET att bete sig som ASP om det behövs. För att detta ska ske måste vi ange svarKodning och begäranKodning till windows-1252 (en mer fullständig kodning än iso-8859-1) och använda egenskapen Response.Charset för att visa texten korrekt. Det fungerar eftersom windows-1252 är ett kodningsschema med en byte och inga byte som läggs till i bufferten ändras. Därför skickas tecken med dubbla byte som en serie med enstaka byte. Sedan kan vi berätta för Internet Explorer hur byte ska tolkas med hjälp av egenskapen Response.Charset. Det här scenariot kan vara nödvändigt om de ursprungliga data inte lagras som Unicode eller UTF-8, till exempel ett returvärde från ett COM-objekt, eller om data lagras i Microsoft SQL Server i ett fält som inte är N (till exempel varchar).

SQL Server och ASP.NET globaliseringsproblem

Unicode-dataindata som matas in i SQL Server

Det bästa sättet att lagra data i SQL Server är att använda Unicode. När vi använder INSERT, UPDATE o.s.v., om det finns minst risk för Unicode-data, måste vi lägga till ett N före värdet. Då informeras databasen om att värdet är Unicode. Ett bra exempel på detta är ADO-objekten. De gör detta automatiskt om vi använder Recordset-objektet för att lägga till nya poster.

Följande är ett exempel:

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)"
Datum/tid-inmatning i SQL Server

Vanligtvis har vi kunskapen om den kultur och de nationella trakterna för datum/tid som tolkas i vår ASP.NET ansökan. Men samtidigt som vi överför och hämtar datum-/tidsdata till och från externa källor riskerar vi att feltolka datum-/tidsformaten. Det beror på att vi inte alltid kan garantera att den externa källans kultur och nationella inställningar är desamma som i vår ansökan. I SQL Server kan detta lösas med hjälp av attributet "aktuellt språk" i anslutningssträngen för anslutningen som upprättas till SQL-databasen. Vi kan tillhandahålla samma språkinställning i anslutningssträngen som kulturen i vår ansökan. Detta skyddar oss från risken för feltolkning, eftersom SQL Server alltid accepterar och skickar datum-/tidsdata i medgivande med den ovan nämnda inställningen.

System.Globalization namespace

Det här namnområdet är kärnan i globalisering och lokalisering i .NET Framework. Huvudklassen som används i det här namnområdet är klassen CultureInfo. Den innehåller kulturspecifik information, till exempel datum-/tidsformat, talformat, jämförelseinformation och textinformation. Mer information om klassen CultureInfo finns på följande MSDN-webbplats:

http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxCultureInfo

Neutrala kulturer kontra specifika kulturer

En neutral kultur är en kultur som är associerad med ett språk, men inte ett visst land/region. En särskild kultur associeras både med ett språk och ett visst land/en viss region.

Ett exempel: "DE" (neutral kultur) är för det tyska språket, men "de-AT" (specifik kultur) är för det tyska språket som det talas i Österrike. Neutrala kulturer kan inte användas för formatering.

Aktuell tråd och kulturmedvetenhet om .NET Framework klasser

Alla klasser och metoder i det .NET Framework biblioteket där vi förväntar oss att produktionen ska vara kulturberoende har två inbyggda beteenden:

  • De låter oss ange kulturkoden samtidigt som vi tillhandahåller argumenten så att resultatet baseras på den angivna kulturen. Det här är valfritt.

  • Om detta missas (vanligtvis är det det) är klasserna intelligenta nog att kontrollera egenskapen Thread.CurrentThread.CurrentCulture och arbeta enligt det.

Vi kan ändra den här egenskapens värde med kod som liknar följande:

    Dim ci As CultureInfo
        ci = New CultureInfo("de-AT")
        Thread.CurrentThread.CurrentCulture = ci

I det här kodexemplet representerar "de" det tyska språket och "AT" representerar Österrike. Så i den här instansen, DateTime.Now(). ToString-metoden skulle returnera datum och tid i ett format som motsvarar hur datum och tid uttrycks på tyska i Österrike.

Ramverket säkerställer (enligt följande) att egenskapen CurrentCulture alltid initieras:

  1. Vad det än är inställt på programmässigt.

  2. Om den inte anges uttryckligen av programmeraren plockas egenskapen från konfigurationsfilerna (<globalisering> tagg).

  3. Om egenskapen saknas där är det den kultur som webbservern körs på. Detta är vanligtvis den neutrala kultur som motsvarar språket i operativsystemet.

Resursfiler

Alla .resx-, .resource-filer och -filer som har attributet Build Action inställt på Inbäddad resurs som läggs till i ett ASP.NET projekt i Visual Studio .NET, sammanställs automatiskt och bäddas in i programsammansättning som en del av manifestet. Detta kan även göras manuellt med hjälp av RESGEN-verktyget (Resource File Generator) via en Kommandotolk för Visual Studio .NET. Mer information finns på följande MSDN-webbplats:

http://msdn2.microsoft.com/en-us/library/ccec7sz1(vs.71).aspxDet här är ett allmänt koncept som är tillämpligt när vi behöver hantera programresurser som inte är relaterade till globalisering. Men när vi genomför globalisering bör vi använda satellitsammansättningar.

Satellitsammansättningar

Satellitsammansättningar kan användas i ett ASP.NET projekt när du ser till att följande stämmer:

  1. Alla element i användargränssnittet i alla aspx-filer måste vara utrustade med id- och runat=server-attribut.

  2. Vi skapar separata RESX-filer. Var och en måste motsvara varje kultur som vi vill att vår ansökan ska stödja.

  3. Vi måste bestämma ett gemensamt förnamn för alla dessa filer till exempel. "Strängar".

  4. Vi namnger de separata .resx-filerna med följande namnkonventioner commonfirstname. languagecode-regioncode.resx (till exempel: Strings.de-AT.resx, Strings.en-GB.resx ).

  5. Vi bör ha resursfilen
    commonfirstname.resx (Strings.resx) som har alla strängar som vi vill visa i standardfall.

  6. Skriv kod för att identifiera användarens kultur och ställ in egenskapen Thread.CurrentThread.CurrentUICulture så att den matchar den.

  7. Skriv kod för att läsa in resurserna med hjälp av klassen ResourceManager.

  8. Skriv kod för att extrahera strängar från det inlästa objektet och tilldela dem till användargränssnittselement.

När du har utfört de här stegen kompilerar Visual Studio.NET Strings.resx och bäddar in det i programuppsättningen (MyGlobalizationTestProjectName.dll). Men för alla andra .resx-filer genereras separata dll-filer som inte har körbar kod utan bara resursdata. Dessa kallas faktiskt satellitsammansättningar. Visual Studio .NET placerar dessa i mappstruktur som liknar följande:MyGlobalizationTestProjectName
|------- fack
|------en-US

MyGlobalizationTestProjectName.resources.dll |------ja-JP

MyGlobalizationTestProjectName.resources.dll |------de-AT
MyGlobalizationTestProjectName.resources.dll

Skillnad mellan CurrentCulture och CurrentUICulture

Även om metoderna för klasser i System.Globalization-namnrymden är beroende av egenskapen Thread.CurrentThread.CurrentCulture för att ge deras utdata, beror den ResourceManager-klass som läser in resursuppsättningen på egenskapen Thread.CurrentThread.CurrentUICulture för att läsa in rätt satellituppsättning. Följande är ett exempel på C#-kod:

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");
   }

 }

I vilken ordning ASP.NET väljer satellituppsättningar:

När du har ställt in trådens CurrentUICulture väljer ASP.NET automatiskt de resurser som matchar i följande ordning:

  • Om en satellituppsättning hittas med en matchande kultur används resurserna från den sammansättningen.

  • Om en satellituppsättning hittas med en neutral kultur som matchar CurrentUICulture används resurser från den sammansättningen.

  • Om en matchning inte hittas för CurrentUICulture används reservresurserna som lagras i den körbara sammansättningen.

Obs! Detta baseras på den mer allmänna återställningsprocessen för resurser. Mer information finns på följande MSDN-webbplats:

http://msdn2.microsoft.com/en-us/library/sb6a8618(vs.71).aspx

Skapa satellitsammansättningar manuellt:

Den här användningen av satellituppsättningar är där Visual Studio .NET skapar själva sammansättningarna. Visual Studio .NET har däremot inte starka namnsatelliter som standard. Om du vill ändra de här alternativen måste du skapa satellituppsättningar manuellt. Mer information finns på följande MSDN-webbplats:

http://msdn2.microsoft.com/en-us/library/21a15yht(vs.71).aspx .

Vad händer med ASP.NET 2.0 på globaliseringsfronten?

Den utbredda användningen av ASP.NET och den typ av frågor som vi skulle se när det gäller globaliseringsfunktioner i ASP.NET 2.0 är fortfarande en bit framåt. Det skulle dock vara bra att ta en kort titt på vilken riktning globaliseringsmetoden är på väg för webbprogram.

Globaliseringsstöd i ASP.NET 2.0 har genomgått en genomgripande förändring och webbutvecklare har fått möjlighet att göra lokaliseringen av webbprogram så enkel som den är för Windows-baserade program. Följande är en lista över funktioner som utgör grunden för globaliseringsmetoden i ASP.NET 2.0:

Starkt skrivna resurser Kärnan i .NET Framework 2.0-versionen är stöd för starkt skrivna resurser som förser utvecklare med Intellisense och förenklar kod som krävs för att komma åt resurser vid körning.

Hanterad resursredigerare Visual Studio .NET 2.0 innehåller en ny resursredigerare med bättre stöd för att skapa och hantera resursposter, inklusive strängar, bilder, externa filer och andra komplexa typer.

Resursgenerering för Web Forms Windows Forms utvecklare har redan åtnjutit fördelarna med automatisk internationalisering. Visual Studio .NET 2005 stöder nu snabb internationalisering genom att automatiskt generera resurser för Web Forms, användarkontroller och huvudsidor.

Förbättrat stöd för Runtime ResourceManager-instanser hanteras av runtime och är lättillgängliga för serverkod via mer tillgängliga programmeringsgränssnitt.

Lokaliseringsuttryck Moderna deklarativa uttryck för webbsidor har stöd för mappning av resursposter för att styra egenskaper, HTML-egenskaper eller statiska innehållsregioner. De här uttrycken är också utökningsbara, vilket ger ytterligare sätt att styra processen för att bifoga lokaliserat innehåll i HTML-utdata.

Automatiskt kulturval Hantera val av kultur för varje webbförfrågan kan automatiskt länkas till webbläsarinställningar.

Resursprovidermodell En ny resursleverantörsmodell gör det möjligt för utvecklare att lagra resurser i alternativa datakällor, till exempel platta filer och databastabeller, medan programmeringsmodellen för åtkomst till dessa resurser förblir konsekvent.

Mer information om globaliseringsmetodik i ASP.NET 2.0 finns på följande MSDN-webbplats:

ASP.NET 2.0-lokaliseringsfunktioner: En ny metod för att lokalisera webbprogram
http://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

Slutsats

Det handlar just nu om globaliseringsproblem i ASP och ASP.NET. Jag hoppas att den här artikeln kommer att hjälpa några kunder att felsöka sina globaliseringsproblem i ASP och ASP.NET innan de väljer att kontakta Microsoft Support. Jag kommer att sluta med följande tanke:

"Oavsett var och när du utvecklar, tänk på de miljontals människor du kan stärka runt om i världen. Gör dina lösningar världsklara! Microsofts verktyg och tekniker gör internationalisering enklare."

Vi kommer att komma ikapp igen nästa månad med ett annat intressant ämne.

Tack för din tid.

Mer information om globaliseringsproblem i ASP och ASP.NET finns på följande Microsoft-webbplatser:

SetLocale och GetLocale i vbscript
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx

Steg försteg-http://msdn.microsoft.com/en-us/goglobal/bb688110
för globalisering

Go Global: Localizing Dynamic Web Apps with IIS 5.0 and SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

Bli global: Utforma din ASP-baserade webbplats för att stödja globalisering
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 Så här identifierar du ett klientspråk på en sida med aktiva serversidor iIIS-http://support.microsoft.com/?id=315616

Språk-ID(LCID) diagram
http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx

System.Globalization Namespace
http://msdn2.microsoft.com/en-us/library/system.globalization(vs.71).aspx

Resurser och lokalisering Med .NET FrameworkSDK-http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx

Resurser i ASP.NET Program
http://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx

ASP.NET <globalisering> konfigurationselement
http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx

Riktlinjer för design och implementering för webbklienterna – globalisering och lokalisering
http://msdn2.microsoft.com/en-us/library/ms978628.aspx

Officiell Microsoft-webbplats – Global Development and Computing Portal
http://msdn.microsoft.com/en-us/goglobal/bb688096

Utveckla World-Ready Applications
http://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx

Globaliseringsarkitektur för ASP.NET
http://msdn2.microsoft.com/en-us/library/aa478974.aspx

Verktyg för lokalisering av företag – För utveckling av lokaliserade Microsoft ASP.NET-program
http://msdn2.microsoft.com/en-us/library/aa479334.aspx

Microsoftstypografi
http://www.microsoft.com/typography/default.mspx

Ordlista

ANSI står för American National Standards Institute. I det här sammanhanget representerar den en specifik kodsida för ett visst språk/teckenuppsättning. Oftast refererar de till den engelska kodsidan (windows-1252).

ASCII A kodningsschema med 1 byte (eller 7 bitar). Endast tecknen i intervallet 0–127 standardiseras. Intervallet 128-255 är tillägg till ASCII och inte en del av standarden. Ett exempel på detta är skillnaden mellan det övre intervallet i OEM ASCII-diagrammet och VB ASCII-diagrammet.

Teckenuppsättningsinställning används främst för Internet Explorer och webbläsare som talar om för webbläsaren hur teckendata ska tolkas. Exempel: Response.charSet = "iso-8859-1".

Kodsida En konverteringstabell som anger hur tecken kodas (används vanligtvis för servrar).

Globalisering Globalisering är en process för att utforma och skapa en applikation så att de unika kraven för en kultur, region eller nationella/regionala och språkliga behov kan uppfyllas. Med andra ord är globalisering att utforma ett program på ett sätt som kan lokaliseras senare.

Språk/kultur Språk och regionspecifika format/inställningar, inklusive datum- och kalenderformat, tidsformat, valutaformat, hölje, sortering och strängjämförelse, adressformat, telefonnummerformat, pappersstorlekar, måttenhet, skrivriktning osv.

LocaleID (LCID) Ett DWORD-värde som anger språkidentifierare och sorterings-ID. Den kan användas för att ange de specifika regionsformaten för ex datum/tid osv ska formateras enligt.

Localizability Ability of an application to present content for the demanded language/locale.

Lokalisering av lokalisering är processen med att översätta ett användargränssnitt till specifika språk och/eller språk.

Flerbyteteckenuppsättning En teckenuppsättning där tecknen består av två eller fler byte, till exempel japanska. UTF-8 faller också under denna kategori. (Unicode ingår tekniskt sett i den här kategorin, men i Windows har det en egen kategori.)

Unicode Ett kodningsschema med 2 byte. Windows använder Unicode internt. Alla API:er som är specifikt för Unicode betecknas med ett "W" i slutet av funktionsnamnet. Kallas även bred char; kan inte användas direkt från webbprogram.

UTF-8 En teckenkodning där ett tecken kan representeras av 1–6 byte. I Windows är intervallet 1–3 byte. Stöds inte i NT4 för webbprogram.



Bred teckenuppsättning Ett alias för Unicode. Kallas även DBCS (teckenuppsättning med dubbla byte), UCS-2, UTF-16.

Som alltid kan du skicka idéer om ämnen som du vill ta upp i framtida kolumner eller i Knowledge Base med hjälp av formuläret Fråga efter det.

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×