[ erkan @ 25.03.2004. 13:14 ] @
Pozdrav svima!
Radi se o ASP.NET projektu i imam problem kod prikaza interfejsa kljentu
kod koga je localni settings na srpskom - cirilic. Tada mu se javljaju 'kuke i motike' i interejs ne lici ni na sta.
Nema problema ako je i server sa istim settingom, tada je sve redu, medjutim projeni li se setting na serveru u hrvatski => problemi.
Vjerovatno se radi o nekom unicode cudu, ali ne znam sto i kako?
Jer kako mi je poznato u C#u je ionako 'sve' u unicodu.

Samo da jos napomenem kako postavljam CurrentCulture:

Page_Load()
{
...
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
...
}

Jos da ne zaboravim da kazem da kada recimo postavim localni settings na hrvatski
i otvorim kod pa pogledam stringove koje sam napisao cirilicom, vidim da je je nastala zbrka i da je to upravo ono sto se prikaze klijentu.
[ mmix @ 26.03.2004. 10:28 ] @
Citat:
erkan:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);

Ajd ovako napamet da ne zalazimo u dubinu bez potrebe, probaj da postaviš i Thread.CurrentThread.CurrentUICulture na isti cultureinfo.

[ erkan @ 26.03.2004. 12:57 ] @
Nije problem da prepoznam setting od klijenta, postavio sam da mi ispisuje log (jer mi nesto sa debuggerom nije u redu) i iz njega vidim da sasvim dobro prepozna da je kod jednog klijenta sr-cirilic(ovako nekako) a kod drugog hr, kod treceg en-us itd. Medjutim, problem je u ispisu. Jer kako sam vec napomenuo, problem je sto i kad postavim hrvatski settings i kod mene i otvorm kod, u kodu vidim iste takve hjeroglife:

case SETTING_SERBIAN:
{

this.LabelStatisticCaption.Text = "Ńňŕňčńňčęŕ";
this.LabelFind.Text = "Oáđŕäč";
this.LabelInterval.Text = "Ďĺđčîä:";
....
....
case SETTING_CROATIAN:
{
this.LabelStatisticCaption.Text = "Statistika";
this.LabelFind.Text = "Obradi";
this.LabelInterval.Text = "Period:";
...
....
itd. isto za engleski

Medjutim, ako sad podesim serbian i kod mene i otvorim kod, sve ce biti u redu, pa i za klijenta koji je na serbian takodje...
[ erkan @ 26.03.2004. 13:00 ] @
Jos i da napomenem da sam i u internetExploreru provjerio
languages i tu je klijentu podesen na Serbian cyrilic ....
Znaci, sa njegove strane je sve u redu...
[ ZokiR @ 27.03.2004. 13:11 ] @
Da li ti je kôd snimljen u UTF-8 formatu? Ako jeste, tekst bi morao da izgleda isto bez obzira na lokalni "setting".
[ erkan @ 29.03.2004. 07:15 ] @
Ne znam!
Moguce da je to rjesenje mog problema.
Mozes li mi mozda reci kako snimiti u tom formatu...(i sta to znaci) ?
[ erkan @ 29.03.2004. 08:20 ] @
Ipak sam skontao. Hvala ti.
Za one koje interesuje:

jednostavno u File->Advance Save Options
pojavljuje se dijalog sa dva comboBoxa. U prvom
izabrati "Unicode (UTF-8 without signature) - Codepage 65001"
a u drugom ostaviti "Current Setting" i sacuvati i sve ce biti u redu

pozdrav !
[ ZokiR @ 29.03.2004. 08:52 ] @
U Visual Studiju, dok ti je otvoren fajl sa ćiriličnim tekstom, idi u File, Save As. Otvoriće se Save File As dijalog. Na desnom delu Save tastera se nalazi strelica koja otvara meni u kome je opcija Save With Encoding. U sledećem prozoru izabereš Unicode UTF-8 Without Signature i onda OK i to je to.

Uzgred, upravo sam primetio da Culture setiraš sa
Code:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);

Tu može doći do problema sa jezicima sa više pisama (kao što je srpski ). .NET razlikuje tzv. specifične i neutralne kulture, gde one prve sadrže i geografsko-političku odrednicu (npr. 'hr-HR', 'en-US') a ove druge samo jezičku ('hr', 'en') -- izuzev u slučajevima kao što je srpski, gde je potreba da se specifira pismo onemogućila korišćenje neutralne kulture, tako da postoje samo 'sr-SP-Cyrl' i 'sr-SP-Latn' a ne i 'sr'. (Lično mislim da je to veoma glupo rešenje, ali tako je kako je.)
Problem je u tome što browseri podržavaju samo 'sr'. Iako Internet Explorer, za razliku od Netscapa i Opere, na prvi pogled dozvoljava da se izaberu i Serbian (Cyrillic) i Serbian (Latin), između njih nema razlike i Request.UserLanguages uvek vraća samo 'sr' -- a ta kultura u .NET-u ne postoji.
[ erkan @ 29.03.2004. 08:59 ] @
Hvala ti. To za 'sr' i 'sr-SP-Cyrl' sam vec skontao ,tako da kod ispitivanja prvo provjerim da li je 'sr', pa ako jeste, onda postavim na 'sr-SP-Cyrl'. Vjerovatno to treba nekako 'kulturnije' ali je to jedino sto sam znao (ko prizna-pola mu se prasta).
[ erkan @ 29.03.2004. 09:02 ] @
Izgleda da sam zaboravio da kazem,
rjesenje jeste u UTF-8, probao sam i radi.
Hvala jos jednom