Tema: Re: Javascript charset=windows-1257 neveikia
Autorius: Laimis
Data: 2015-10-15 14:06:25
Nioka rašė:

> Бvairios specifikacijos (detaliш pjovimui, brлюiniai, furnitыros ir medюiagш
> iрeigos, бvairios sаmatos ir t.t.) formuojamos JS kalboje, kur kodas yra
> atviras vartotojui ir jis gali jas susiprogramuoti pagal savo poreikius.

Čia aš nematau javascript'o, o matau ASP ir tuomet jau aiškiai IIS (web 
serverio technologija), o ne Internet Explorer.
Nežinau ar suprasi, bet pabandysiu paaiškinti.

> Jscript progr. iрtrauka:
>
> <%
> #ifdef __LANG_Lituana__
>   //Lituanian strings
>    #define _CHARSET_ windows-1257
>    #define _HTML_TITLE_ Projekto gaminiш sаmata
>    #define _MATERIALS_ Medюiagos
> #else
> #ifdef __LANG_Russian__
>   //Russian strings
>    #define _CHARSET_ windows-1251
>    #define _HTML_TITLE_ ????? ??????? ?? ????????
>    #define _MATERIALS_ ????????
> #else
>
>   //Default English strings
>    #define _CHARSET_ windows-1252
>    #define _HTML_TITLE_ Project products estimate
>    #define _MATERIALS_ Material
> #endif
> #endif
> %>


Pirmas dalykas: turi patikrinti kokia koduote šis „JScript“ failas 
įrašytas. Kirilica ir lietuviškos/kt. raidės vienu metu dera tik unikode 
(utf-8). Tad šį failą turi matyti teisingai su kokiu tekstiniu 
redaktoriumi (ar tuo pačiu Internet Explorer) jei nustatyta utf-8 
koduotė. Jei nematai teisingai visų užrašų, tai jau šiame faile yra 
problema.

Antras momentas: jei šis failas iš tikrųjų yra utf-8 koduotės, tai kodėl 
nustatinėji skirtingas koduotes kiekvienai kalbai? To tiesiog nereikia. 
Viena koduotė visoms kalboms: utf-8

>
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=_CHARSET_">
> <title>_HTML_TITLE_</title>
> <style type="text/css">
> // cia dar yra lenteliш apraрai
> </style>
> <SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
> </SCRIPT>
> </head>
>
> <body>
> <%
> // Sekanti eilutл iрves teisingai iрrinkta kalba, bet ne tame charset, -
> keiиia
> // lietuviрkas raides rusiрkomis. Vargu , kad иia nagus prikiрo Putinas :)
>    Response.Write( "<H4><I>_HTML_TITLE_ "  + " _MATERIAL_"  +  "</I></H4>" );
> // Sekanti eilutл iрves teisingai iрrinktа charset pavad.: windows-1257 LT
> atveju
>    Response.Write( "<H4><I>_CHARSET_ </I></H4>" );
> %>
> </body>
> </html>

Na, o toliau, tai reikia nurodyti, kokia koduote reasponse.write() 
išveda. Tai, kad gauni kirilicą vietoje lt raidžių, indikuoja, kad 
serverio kompiuterio lokalė vis tik yra rusiška arba tokia nustatyta 
AspCodePage metabase property.


Jei naudoji utf-8, tai turi tai nustatyti ir asp programoje (jos 
antraštėje):
<%@ CodePage=65001 Language="JScript"%>

Ar pačiame kode:
Response.CodePage = 65001
Response.CharSet = "utf-8"

Ar jau minėtą AspCodePage metabase property.