FixText(string[]) {
new result[256];
printf("Фиксануло, до: %s",string);
for(new i=0; i < strlen(string); i++) {
switch(string[i]) {
case 'а':result[i] = 'a';
case 'А':result[i] = 'A';
case 'б':result[i] = '—';
case 'Б':result[i] = 'Ђ';
case 'в':result[i] = 'ў';
case 'В':result[i] = '‹';
case 'г':result[i] = '™';
case 'Г':result[i] = '‚';
case 'д':result[i] = 'љ';
case 'Д':result[i] = 'ѓ';
case 'е':result[i] = 'e';
case 'Е':result[i] = 'E';
case 'ё':result[i] = 'e';
case 'Ё':result[i] = 'E';
case 'ж':result[i] = '›';
case 'Ж':result[i] = '„';
case 'з':result[i] = 'џ';
case 'З':result[i] = '?';
case 'и':result[i] = 'њ';
case 'И':result[i] = '…';
case 'й':result[i] = 'њ';
case 'Й':result[i] = '…';
case 'к':result[i] = 'k';
case 'К':result[i] = 'K';
case 'л':result[i] = 'ћ';
case 'Л':result[i] = '‡';
case 'м':result[i] = 'Ї';
case 'М':result[i] = 'M';
case 'н':result[i] = '®';
case 'Н':result[i] = '-';
case 'о':result[i] = 'o';
case 'О':result[i] = 'O';
case 'п':result[i] = 'Ј';
case 'П':result[i] = 'Њ';
case 'р':result[i] = 'p';
case 'Р':result[i] = 'P';
case 'с':result[i] = 'c';
case 'С':result[i] = 'C';
case 'т':result[i] = '¦';
case 'Т':result[i] = 'Џ';
case 'у':result[i] = 'y';
case 'У':result[i] = 'Y';
case 'ф':result[i] = '?';
case 'Ф':result[i] = 'Ѓ';
case 'х':result[i] = 'x';
case 'Х':result[i] = 'X';
case 'ц':result[i] = ' ';
case 'Ц':result[i] = '‰';
case 'ч':result[i] = '¤';
case 'Ч':result[i] = 'Ќ';
case 'ш':result[i] = 'Ґ';
case 'Ш':result[i] = 'Ћ';
case 'щ':result[i] = 'Ў';
case 'Щ':result[i] = 'Љ';
case 'ь':result[i] = '©';
case 'Ь':result[i] = '’';
case 'ъ':result[i] = 'ђ';
case 'Ъ':result[i] = '§';
case 'ы':result[i] = 'Ё';
case 'Ы':result[i] = '‘';
case 'э':result[i] = 'Є';
case 'Э':result[i] = '“';
case 'ю':result[i] = '«';
case 'Ю':result[i] = '”';
case 'я':result[i] = '¬';
case 'Я':result[i] = '•';
default:result[i]=string[i];
}
}
printf("Фиксануло, после: %s",result);
return result;
}
[13:57:48] Фиксануло, до: Ленивый [13:57:48] Фиксануло, после: Ленивый |
printf("Фиксануло,\"Ленивый\": %s",FixText("Ленивый"));
[13:57:11] Фиксануло, до: Ленивый [13:57:11] Фиксануло, после: ‡e®њўЁњ [13:57:11] Фиксануло,"Ленивый": ‡e®њўЁњ |
Нахрена такие костыли, когда можно просто сменить кодировку? О_о
|
Ну, в sqlite при создании таблицы можно указать кодировку, если мне память не изменяет:
PRAGMA encoding = "UTF-8" |
for(new i=0; i < strlen(string); i++) {
printf("Буква %s - %d",string[i],string[i]);
}
[16:12:23] Фиксануло, до: Ленивый
[16:12:23] Буква Ленивый - 203
[16:12:23] Буква енивый - 229
[16:12:23] Буква нивый - 237
[16:12:23] Буква ивый - 232
[16:12:23] Буква вый - 226
[16:12:23] Буква ый - 251
[16:12:23] Буква й - 233
[16:12:23] Фиксануло, после: ‡e®њўЁњ
[16:13:09] Фиксануло, до: Ленивый
[16:13:09] Буква Ленивый - -53
[16:13:09] Буква енивый - -27
[16:13:09] Буква нивый - -19
[16:13:09] Буква ивый - -24
[16:13:09] Буква вый - -30
[16:13:09] Буква ый - -5
[16:13:09] Буква й - -23
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква - 0
[16:13:09] Буква Ленивый - -48
[16:13:09] Буква ›РµРЅРёРІС‹Р№ - -101
[16:13:09] Буква енивый - -48
[16:13:09] Буква µРЅРёРІС‹Р№ - -75
db_get_field_assoc(u_result, "rrRecordsManDrift", rrRaces[i][rrRecordsManDrift],sizeof(string));
[16:57:01] Буква Л - -53
[16:57:01] Буква е - -27
[16:57:01] Буква н - -19
[16:57:01] Буква и - -24
[16:57:01] Буква в - -30
[16:57:01] Буква ы - -5
[16:57:01] Буква й - -23
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква
[16:57:01] Буква N - 78
[16:57:01] Буква U - 85
[16:57:01] Буква L - 76
[16:57:01] Буква L - 76
stock FixSQLiteRusText(const text[]){
new textEx[64];
strcat(textEx,text);
for(new f; f < sizeof(textEx); f++){
if(-65 < textEx[f] < 0)
textEx[f]+=256;
}
return textEx;
}
printf("Буква %s - %d",string[i],string[i]);
[18:35:29] Буква А - -64 [18:35:29] Буква а - -32 [18:35:29] Буква Б - -63 [18:35:29] Буква б - -31 [18:35:29] Буква Ю - -34 [18:35:29] Буква ю - -2 [18:35:29] Буква Я - -33 [18:35:29] Буква я - -1
[18:35:29] Буква А - 192 [18:35:29] Буква а - 224 [18:35:29] Буква Б - 193 [18:35:29] Буква б - 225 [18:35:29] Буква Ю - 222 [18:35:29] Буква ю - 254 [18:35:29] Буква Я - 223 [18:35:29] Буква я - 255
да там такая кодировка и стоит, не в том суть.
ты не понял вопроса) по кодировке, вроде нормально приходит из БД. просто при приобразовании русского текста через сток в нужный мне (для отображения в TD) не хочет конвертить сток... |