[ makki @ 26.10.2005. 08:05 ] @
Radim asp sajt. Osmišljen je po princupu da index.asp ima dva fiksna dela head.asp
i foot.asp, a centralni sadrzaj se menja u zavisnosti od paramtera koji prosledjuejm index.asp. U head.asp je definisan meta tag
<meta http-equiv="content-type" content="text/html;charset=utf-8">
i head.asp prikazje lepo yu slova. Centralni sadržaj sajta se ispisuje uz pomoć f-je kojoj prosleđujem parametar i koja izabere fajl koji treba da prikaže i to i uradi putem respose.write metoda.
Svi delovi na index.asp koji su ispisani uz pomoć response.write metoda ne prikazuju lepo yu slova, a one strane koje se ukljucuju uz pomoc include direktive a isto su utf-8 enkodovane, prikazuju se lepo.

Koliko sam uspela da vidim na netu, problem je u tome sto response.write primenjuje win32 enkodovanje, i da je potrebno primeniti f-ju MultiByteToWideChar pre prosledjivanja utf-8 enkodovanih podataka, koja je suprotna od WideCharToMultiByte koju primenjuje response.write.
E sada posto je to win api f-ja , ja ne znam kako bi u asp-u pozvala tu f-ju.
Ustvari nisam 100% sigurna ni da je u ovome jedino problem.. mozda gledam u pogresnom smeru?

Da li je neko imao ovakav slucaj i da li zna kako da resim ovo?
[ Shadowed @ 26.10.2005. 08:30 ] @
Pokusaj da koristis @CODEPAGE=65001
[ makki @ 26.10.2005. 09:00 ] @
Citat:
Shadowed: Pokusaj da koristis @CODEPAGE=65001


to sam ubacila, i ne pomaze.. :(

na serveru je postavljeno cak po default-u utf-8 enkodovanje.

[ Shadowed @ 26.10.2005. 09:14 ] @
Cini mi se da je problem sa tom funkcijom koja cita fajl i zatim ga ispisuje. Response.write je meni radio OK sa UTF-8. Neko relevantno parce koda bi doro doslo...

Pokusaj da dodas jednu liniju Response.Write("čćšđž") da vidis da li response.write hoce to da posalje kako treba.
[ makki @ 26.10.2005. 10:48 ] @
ova f-ja se includuje u langmenu.asp.inc
Code:

<%
Function getFileContents(strIncludeFile)
  Dim objFSO
  Dim objText
  Dim strPage
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  Set objText = objFSO.OpenTextFile(Server.MapPath(strIncludeFile))
  getFileContents = objText.ReadAll
  objText.Close
  Set objText = Nothing
  Set objFSO = Nothing
End Function
%>


a onda se poziva ovde

Code:

<!--#include file="langmenu.asp.inc"-->
<%if request("page") = "" then 
     session("page")=100
 else session("page")=request("page")
     end if
dim strInclude
dim ukljucivesti
ukljucivesti=getFileContents(langmenu(99))
response.write ukljucivesti
%>



EDIT [mladenovicz]: dodati code tagovi


[Ovu poruku je menjao mladenovicz dana 26.10.2005. u 13:33 GMT+1]
[ mladenovicz @ 26.10.2005. 12:30 ] @
Pogledaj dodatne parametre OpenTextFile metoda.

Citat:

The format argument can have any of the following settings:

TristateUseDefault 2 Opens the file using the system default.
TristateTrue 1 Opens the file as Unicode.
TristateFalse 0 Opens the file as ASCII.
[ Shadowed @ 26.10.2005. 12:39 ] @
Sorry, nisam video rnije da si odgovorila.

Da, upravo sam i mislio da je to bilo.
Dakle, Set objText = objFSO.OpenTextFile(Server.MapPath(strIncludeFile), 1, False, 1).
[ makki @ 26.10.2005. 12:59 ] @
hvala, evo sada pokusavam da prosledim 3 parametra ovom metodu
OpenTextFile
ali mi ne prolazi, samo prolazi sa 2 parametra.. :(
ako stavim 3 onda javi

Microsoft VBScript runtime (0x800A0005)
Invalid procedure call or argument

kod mene je iis 5.0 a na serveru gde ce biti sajt je 6.0 ni na jednom od oba kompa ne prolazi poziv procedure sa 3 parametra..

sa 2 ne mogu da resim problem..
[ Shadowed @ 26.10.2005. 13:16 ] @
Izostavi False parametar.
[ makki @ 28.10.2005. 08:08 ] @
Resila sam problem, radi se o sledecem..
potrebno je da svaka strana koja se otvara pomocu OpenTextFile metoda bude formata
unicode-Dos.
Moja svaka strana je bila Unicode utf-8, a tako ne moze.

OpenTextFile metod treba da se pozove na sledeci nacin

Code:

Set objText = objFSO.OpenTextFile(Server.MapPath(strIncludeFile), 1, false, -2)


na serveru je postavljeno da je default encoding utf-8,
a ovaj poslednji parametar -2 u pozivu metoda znaci da otvara fajl onako kako je po default-u na serveru.

eto, sada mi sve strane prikazuju ok :)

hvala Vam na pomoci!