Można zrobić to w taki sposób że dodajemy jako parametr adresu połączenia bazy danych taką opcję:
"?characterEncoding=latin2"Przykład:
jdbc:mysql://localhost:3306/baza?characterEncoding=latin2
i Mamy polskie znaki :)
"?characterEncoding=latin2"Przykład:
jdbc:mysql://localhost:3306/baza?characterEncoding=latin2
//klasa kodująca stringa
public static String codeString(String tekst,String haslo_hash,boolean flaga) {
char tmp_chr = '\1';
int byte_out;
int byte_pass;
int byte_in;
int len_pass=haslo_hash.length();
for(int i=0;i < tekst.length();i++) {
byte_in=ord(tekst.charAt(i));
byte_pass=ord(haslo_hash.charAt(i%len_pass));
if (flaga) {
byte_out=(byte_in+byte_pass)%256;
}else {
byte_out=(256+(byte_in-byte_pass))%256;
}
tmp_chr+=chr(byte_out);
}
String tmp_str = "//";
tmp_str=tmp_str.valueOf(tmp_chr);
return tmp_str;
}
//funkcja zwracająca wartość integer kodu ascii
private static int ord(char c) {
return (int)c;
}
//funkcja zwracająca wartość znakową funkcji
private static char chr(int byte_out) {
return ((char)byte_out);
}
function code($tekst,$password,$flag_code) {
$len_pass = strlen($password); // dlugosc klucza
for ($i = 0; $i < strlen($tekst); $i++) { //petla obiegajaca kodowany text
$byte_in = ord($tekst[$i]); //pobranie kolejnych liter textu
$byte_pass = ord($password[$i % $len_pass]); //pobranie kolejnej litert klucza
// funkcja kodujaca / dekodujaca
if ($flag_code == 1) { //sprawdzenie flagi (1 ma być kodowanie: 2 dekodowanie)
$byte_out = ($byte_in + $byte_pass) % 256;
//zakodowanie bajtu tekstu bajtem klucza i podzielenie tego modulo przez 256
} else {
$byte_out = (256 + ($byte_in - $byte_pass)) % 256;
//rozkodowanie bajtu tekstu zakodowanego bajtem klucza...
}
$tmp_str .= chr($byte_out);
//doklejenie roz/zakodowanego bajtu do zmiennej tymczasowej
//tmp_str (z zamianą zmiennej byte na char)
}
return($tmp_str); //wyprowadzenie rezultatu funkcji
}