Diskuze: C#, ASP.NET, firebird a čeština
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Jde hlavně o výstup a tomu nastav UTF-8 v HTTP protokolu - takže:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Ale nyní existuje i meta přímo na charset...
Encoding definuj v MasterPage...
(Ale encoding nesouvisí s ASP. a doufám, že děláš v MVC.)
Měla by to být jen jednoduchá stránka s výpisem vybraných dat z DB.
Myslel jsem, že to zvládnu i bez MasterPage.
MVC mi zatím nic neříká, ale rád se poučím.
Další problém je se zadáváním hodnot pro vyhledávání v DB -
Na rozdíl od konzolové aplikace.
Předpokládám, že problém je stejný - kódování češtiny?!
Diakritika v DB - tedy v captionech sloupců = fujtajbl... Ty pojmenuj anglicky...
A jak to hledáš? (Doufám, že v dotazech.) Netuším, jak to máš - možná dotazovanou hodnotu převeď do podoby bez diakritiky a hledanou také...
Hledám to takhle:
FbCommand command = new FbCommand("SELECT IDENT FROM OSOBY WHERE PRIJMENI =
@prijmeni AND OSCISLO = @oscislo", connection);
command.Parameters.AddWithValue("@prijmeni", tbPrijmeni.Text);
command.Parameters.AddWithValue("@oscislo", tbCisloKarty.Text);
object ident = command.ExecuteScalar();
pokud je příjmení s diakritikou, tak nic nenajde
Zkus převést text z textboxu:
protected string Convertor(string asciiString)
{
System.Text.Encoding ascii = System.Text.Encoding.ASCII;
System.Text.Encoding utf8 = System.Text.Encoding.UTF8;
byte[] asciiBytes = ascii.GetBytes(asciiString);
byte[] utf8Bytes = System.Text.Encoding.Convert(ascii, utf8,
asciiBytes);
char[] utf8Chars = new char[utf8.GetCharCount(utf8Bytes, 0,
utf8Bytes.Length)];
utf8.GetChars(utf8Bytes, 0, utf8Bytes.Length, utf8Chars, 0);
string utf8String = new string(utf8Chars);
return utf8String;
}
Databázi bych převedl do UTF8, potom nic nemusíš řešit.
ten Convertor už jsem zkoušel (i s Encoding.GetEncoding(1250) )
bohužel to problém nevyřešilo
Bohužel ta DB není moje. Připojuji se na DB od jiné firmy.
Její charset je 1250. Překvapilo mne, že přenastavení charset
v connectionStringu z 1250 na UTF8 nemá na nic vliv
V připojení k databázi se dá nastavit, aby navenek vystupovala pod jiným kódováním, moc se v tomhle nevyznám, ale myslím, že na to byl příkaz SET NAMES. Mělo by jít, že se připojíš, něco zavoláš a bude to v UTFKu. Zkus pogooglit.
Zobrazeno 13 zpráv z 13.