Проблемы с русской MySQL - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 23.01.2012, 23:45   #11
Пользователь

Автор темы (Топик Стартер) Re: Проблемы с русской MySQL

Цитата:
Сообщение от Gambit_J Посмотреть сообщение
вообщем я и не сомневался. Предпоследний пост почитайте, должно помочь. Чат ни как не относиться к базе.
Относится если данные в чат идут напрямую с базы. Дело в том что я пытаюсь создать моба через темплайт. Когда такое происходит все данные берутся с сервера если данный моб не прописан в клиенте. Прописать одного моба не сложно, но когда их тысячи это выливается в проблему.
Вообщем попробую как то это решить в ядре.
ShadowAngel вне форума Ответить с цитированием
Непрочитано 24.01.2012, 11:46   #12
Изгнанные

По умолчанию Re: Проблемы с русской MySQL

Цитата:
Сообщение от ShadowAngel Посмотреть сообщение
Относится если данные в чат идут напрямую с базы. Дело в том что я пытаюсь создать моба через темплайт. Когда такое происходит все данные берутся с сервера если данный моб не прописан в клиенте. Прописать одного моба не сложно, но когда их тысячи это выливается в проблему.
Вообщем попробую как то это решить в ядре.
или авто-анонс. Но погодите, когда просто игроки перепиливаются, тоже каракули? Просто для эксперимента попробуйте с др патча зайти, свой резерваните.
Gambit_J вне форума Отправить сообщение для Gambit_J с помощью ICQ Отправить сообщение для Gambit_J с помощью Skype™ Ответить с цитированием
Непрочитано 24.01.2012, 13:33   #13
Пользователь

Автор темы (Топик Стартер) Re: Проблемы с русской MySQL

Цитата:
Сообщение от Gambit_J Посмотреть сообщение
или авто-анонс. Но погодите, когда просто игроки перепиливаются, тоже каракули? Просто для эксперимента попробуйте с др патча зайти, свой резерваните.
Нет каракули только когда игрок дерется с монстром которого нет в паче. Я патч делаю сам с нуля. И еще раз повторяю, я знаю как убрать данную проблему с помощью патчя, но мне нужно сделать это на уровне ядра.
Путем экспериментов выяснил что в ядре данные перекодируются в кодировку похожую на Cp866, но при переводе теряются некоторые буквы, такие как "р".

Добавлено через 12 часов 20 минут
Итак плюнул я на всякие там стандартные методы и кодировки, и написал с нуля енкодер с непонятного юникода в нормальный русский текст.
Может кому то пригодится:
Код:
/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 * 
 * Класс создал ShadowAngel
 */

package ru.l2open;

public class UTF_to_Rus
{
	public static String decode(String str)
	{
		int d = str.length() - 1; //Получаем длинну входящего стринга
		String newString = new String();
		for (int i = 0; i > d; i++) // Начинаем побуквинную проверку всего стринга
		{
		int ch = str.codePointAt(i);
		//Rus
		if (ch == 1040)
			newString.concat("А");
		else if (ch == 1041)
			newString.concat("Б"); 
		else if (ch == 1042)
			newString.concat("В");
		else if (ch == 1043)
			newString.concat("Г");
		else if (ch == 1044)
			newString.concat("Д");
		else if (ch == 1045)
			newString.concat("Е");
		else if (ch == 1046)
			newString.concat("Ж");
		else if (ch == 1047)
			newString.concat("З");
		else if (ch == 1048)
			newString.concat("И");
		else if (ch == 1049)
			newString.concat("Й");
		else if (ch == 1050)
			newString.concat("К");	
		else if (ch == 1051)
			newString.concat("Л");	
		else if (ch == 1052)
			newString.concat("М");
		else if (ch == 1053)
			newString.concat("Н");
		else if (ch == 1054)
			newString.concat("О");
		else if (ch == 1055)
			newString.concat("П");
		else if (ch == 1056)
			newString.concat("Р");
		else if (ch == 1057)
			newString.concat("С");
		else if (ch == 1058)
			newString.concat("Т");
		else if (ch == 1059)
			newString.concat("У");
		else if (ch == 1060)
			newString.concat("Ф");
		else if (ch == 1061)
			newString.concat("Х");
		else if (ch == 1062)
			newString.concat("Ц");
		else if (ch == 1063)
			newString.concat("Ч");
		else if (ch == 1064)
			newString.concat("Ш");
		else if (ch == 1065)
			newString.concat("Щ");
		else if (ch == 1066)
			newString.concat("Ъ");
		else if (ch == 1067)
			newString.concat("Ы");
		else if (ch == 1068)
			newString.concat("Ь");
		else if (ch == 1069)
			newString.concat("Э");
		else if (ch == 1070)
			newString.concat("Ю");
		else if (ch == 1071)
			newString.concat("Я");
		else if (ch == 1072)
			newString.concat("а");
		else if (ch == 1073)
			newString.concat("б"); 
		else if (ch == 1074)
			newString.concat("в");
		else if (ch == 1075)
			newString.concat("г");
		else if (ch == 1076)
			newString.concat("д");
		else if (ch == 1077)
			newString.concat("е");
		else if (ch == 1078)
			newString.concat("ж");
		else if (ch == 1079)
			newString.concat("з");
		else if (ch == 1080)
			newString.concat("и");
		else if (ch == 1081)
			newString.concat("й");
		else if (ch == 1082)
			newString.concat("к");	
		else if (ch == 1083)
			newString.concat("л");	
		else if (ch == 1084)
			newString.concat("м");
		else if (ch == 1085)
			newString.concat("н");
		else if (ch == 1086)
			newString.concat("о");
		else if (ch == 1087)
			newString.concat("п");
		else if (ch == 1088)
			newString.concat("р");
		else if (ch == 1089)
			newString.concat("с");
		else if (ch == 1090)
			newString.concat("т");
		else if (ch == 1091)
			newString.concat("у");
		else if (ch == 1092)
			newString.concat("ф");
		else if (ch == 1093)
			newString.concat("х");
		else if (ch == 1094)
			newString.concat("ц");
		else if (ch == 1095)
			newString.concat("ч");
		else if (ch == 1096)
			newString.concat("ш");
		else if (ch == 1097)
			newString.concat("щ");
		else if (ch == 1098)
			newString.concat("ъ");
		else if (ch == 1099)
			newString.concat("ы");
		else if (ch == 1100)
			newString.concat("ь");
		else if (ch == 1101)
			newString.concat("э");
		else if (ch == 1102)
			newString.concat("ю");
		else if (ch == 1103)
			newString.concat("я");
		//Eng
		else if (ch == 65)
			newString.concat("A");
		else if (ch == 66)
			newString.concat("B"); 
		else if (ch == 67)
			newString.concat("C");
		else if (ch == 68)
			newString.concat("D");
		else if (ch == 69)
			newString.concat("E");
		else if (ch == 70)
			newString.concat("F");
		else if (ch == 71)
			newString.concat("G");
		else if (ch == 72)
			newString.concat("H");
		else if (ch == 73)
			newString.concat("I");
		else if (ch == 74)
			newString.concat("J");
		else if (ch == 75)
			newString.concat("K");	
		else if (ch == 76)
			newString.concat("L");	
		else if (ch == 77)
			newString.concat("M");
		else if (ch == 78)
			newString.concat("N");
		else if (ch == 79)
			newString.concat("O");
		else if (ch == 80)
			newString.concat("P");
		else if (ch == 81)
			newString.concat("Q");
		else if (ch == 82)
			newString.concat("R");
		else if (ch == 83)
			newString.concat("S");
		else if (ch == 84)
			newString.concat("T");
		else if (ch == 85)
			newString.concat("U");
		else if (ch == 86)
			newString.concat("V");
		else if (ch == 87)
			newString.concat("W");
		else if (ch == 88)
			newString.concat("X");
		else if (ch == 89)
			newString.concat("Y");
		else if (ch == 90)
			newString.concat("Z");
		else if (ch == 97)
			newString.concat("a");
		else if (ch == 98)
			newString.concat("b"); 
		else if (ch == 99)
			newString.concat("c");
		else if (ch == 100)
			newString.concat("d");
		else if (ch == 101)
			newString.concat("e");
		else if (ch == 102)
			newString.concat("f");
		else if (ch == 103)
			newString.concat("g");
		else if (ch == 104)
			newString.concat("h");
		else if (ch == 105)
			newString.concat("i");
		else if (ch == 106)
			newString.concat("j");
		else if (ch == 107)
			newString.concat("k");	
		else if (ch == 108)
			newString.concat("l");	
		else if (ch == 109)
			newString.concat("m");
		else if (ch == 110)
			newString.concat("n");
		else if (ch == 111)
			newString.concat("o");
		else if (ch == 112)
			newString.concat("p");
		else if (ch == 113)
			newString.concat("q");
		else if (ch == 114)
			newString.concat("r");
		else if (ch == 115)
			newString.concat("s");
		else if (ch == 116)
			newString.concat("t");
		else if (ch == 117)
			newString.concat("u");
		else if (ch == 118)
			newString.concat("v");
		else if (ch == 119)
			newString.concat("w");
		else if (ch == 120)
			newString.concat("x");
		else if (ch == 121)
			newString.concat("y");
		else if (ch == 122)
			newString.concat("z");
		//Спец символы и цыфры
		else if (ch == 48)
			newString.concat("0");
		else if (ch == 49)
			newString.concat("1");
		else if (ch == 50)
			newString.concat("2");
		else if (ch == 51)
			newString.concat("3");
		else if (ch == 52)
			newString.concat("4");
		else if (ch == 53)
			newString.concat("5");			
		else if (ch == 54)
			newString.concat("6");
		else if (ch == 55)
			newString.concat("7");
		else if (ch == 56)
			newString.concat("8");
		else if (ch == 57)
			newString.concat("9");			
		else if (ch == 32) // Пробел
			newString.concat(" ");
		else if (ch == 40)
			newString.concat("(");
		else if (ch == 41)
			newString.concat(")");
		else
			newString.concat("§"); //Неизвестный символ
		}
	return newString; // Возвращает результат
	}
}// Конец класа UTF_to_Rus

Последний раз редактировалось ShadowAngel; 25.01.2012 в 01:57. Причина: Добавлено сообщение
ShadowAngel вне форума Ответить с цитированием
Непрочитано 25.01.2012, 22:40   #14
Пользователь

Автор темы (Топик Стартер) Re: Проблемы с русской MySQL

Обновил декодер. Теперь переводятся не только имена но и систем чат.
Код:
/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 * 
 * Класс создал ShadowAngel
 */

package ru.l2open;

public class UTF_to_Rus
{
	public static String decode(String str)
	{
		int d = str.length()-1; //Получаем длинну входящего стринга
		String[] newString = new String[d+1];
		int i=0;
		while (i <= d) // Начинаем побуквинную проверку всего стринга
		{
		int ch = str.codePointAt(i);
		//Rus
		if (ch == 1040)
			newString[i] ="А";
		else if (ch == 1041)
			newString[i] ="Б"; 
		else if (ch == 1042)
			newString[i] ="В";
		else if (ch == 1043)
			newString[i] ="Г";
		else if (ch == 1044)
			newString[i] ="Д";
		else if (ch == 1045)
			newString[i] ="Е";
		else if (ch == 1046)
			newString[i] ="Ж";
		else if (ch == 1047)
			newString[i] ="З";
		else if (ch == 1048)
			newString[i] ="И";
		else if (ch == 1049)
			newString[i] ="Й";
		else if (ch == 1050)
			newString[i] ="К";	
		else if (ch == 1051)
			newString[i] ="Л";	
		else if (ch == 1052)
			newString[i] ="М";
		else if (ch == 1053)
			newString[i] ="Н";
		else if (ch == 1054)
			newString[i] ="О";
		else if (ch == 1055)
			newString[i] ="П";
		else if (ch == 1056)
			newString[i] ="Р";
		else if (ch == 1057)
			newString[i] ="С";
		else if (ch == 1058)
			newString[i] ="Т";
		else if (ch == 1059)
			newString[i] ="У";
		else if (ch == 1060)
			newString[i] ="Ф";
		else if (ch == 1061)
			newString[i] ="Х";
		else if (ch == 1062)
			newString[i] ="Ц";
		else if (ch == 1063)
			newString[i] ="Ч";
		else if (ch == 1064)
			newString[i] ="Ш";
		else if (ch == 1065)
			newString[i] ="Щ";
		else if (ch == 1066)
			newString[i] ="Ъ";
		else if (ch == 1067)
			newString[i] ="Ы";
		else if (ch == 1068)
			newString[i] ="Ь";
		else if (ch == 1069)
			newString[i] ="Э";
		else if (ch == 1070)
			newString[i] ="Ю";
		else if (ch == 1071)
			newString[i] ="Я";
		else if (ch == 1072)
			newString[i] ="а";
		else if (ch == 1073)
			newString[i] ="б"; 
		else if (ch == 1074)
			newString[i] ="в";
		else if (ch == 1075)
			newString[i] ="г";
		else if (ch == 1076)
			newString[i] ="д";
		else if (ch == 1077)
			newString[i] ="е";
		else if (ch == 1078)
			newString[i] ="ж";
		else if (ch == 1079)
			newString[i] ="з";
		else if (ch == 1080)
			newString[i] ="и";
		else if (ch == 1081)
			newString[i] ="й";
		else if (ch == 1082)
			newString[i] ="к";	
		else if (ch == 1083)
			newString[i] ="л";	
		else if (ch == 1084)
			newString[i] ="м";
		else if (ch == 1085)
			newString[i] ="н";
		else if (ch == 1086)
			newString[i] ="о";
		else if (ch == 1087)
			newString[i] ="п";
		else if (ch == 1088)
			newString[i] ="р";
		else if (ch == 1089)
			newString[i] ="с";
		else if (ch == 1090)
			newString[i] ="т";
		else if (ch == 1091)
			newString[i] ="у";
		else if (ch == 1092)
			newString[i] ="ф";
		else if (ch == 1093)
			newString[i] ="х";
		else if (ch == 1094)
			newString[i] ="ц";
		else if (ch == 1095)
			newString[i] ="ч";
		else if (ch == 1096)
			newString[i] ="ш";
		else if (ch == 1097)
			newString[i] ="щ";
		else if (ch == 1098)
			newString[i] ="ъ";
		else if (ch == 1099)
			newString[i] ="ы";
		else if (ch == 1100)
			newString[i] ="ь";
		else if (ch == 1101)
			newString[i] ="э";
		else if (ch == 1102)
			newString[i] ="ю";
		else if (ch == 1103)
			newString[i] ="я";
		//Eng
		else if (ch == 65)
			newString[i] ="A";
		else if (ch == 66)
			newString[i] ="B"; 
		else if (ch == 67)
			newString[i] ="C";
		else if (ch == 68)
			newString[i] ="D";
		else if (ch == 69)
			newString[i] ="E";
		else if (ch == 70)
			newString[i] ="F";
		else if (ch == 71)
			newString[i] ="G";
		else if (ch == 72)
			newString[i] ="H";
		else if (ch == 73)
			newString[i] ="I";
		else if (ch == 74)
			newString[i] ="J";
		else if (ch == 75)
			newString[i] ="K";	
		else if (ch == 76)
			newString[i] ="L";	
		else if (ch == 77)
			newString[i] ="M";
		else if (ch == 78)
			newString[i] ="N";
		else if (ch == 79)
			newString[i] ="O";
		else if (ch == 80)
			newString[i] ="P";
		else if (ch == 81)
			newString[i] ="Q";
		else if (ch == 82)
			newString[i] ="R";
		else if (ch == 83)
			newString[i] ="S";
		else if (ch == 84)
			newString[i] ="T";
		else if (ch == 85)
			newString[i] ="U";
		else if (ch == 86)
			newString[i] ="V";
		else if (ch == 87)
			newString[i] ="W";
		else if (ch == 88)
			newString[i] ="X";
		else if (ch == 89)
			newString[i] ="Y";
		else if (ch == 90)
			newString[i] ="Z";
		else if (ch == 97)
			newString[i] ="a";
		else if (ch == 98)
			newString[i] ="b"; 
		else if (ch == 99)
			newString[i] ="c";
		else if (ch == 100)
			newString[i] ="d";
		else if (ch == 101)
			newString[i] ="e";
		else if (ch == 102)
			newString[i] ="f";
		else if (ch == 103)
			newString[i] ="g";
		else if (ch == 104)
			newString[i] ="h";
		else if (ch == 105)
			newString[i] ="i";
		else if (ch == 106)
			newString[i] ="j";
		else if (ch == 107)
			newString[i] ="k";	
		else if (ch == 108)
			newString[i] ="l";	
		else if (ch == 109)
			newString[i] ="m";
		else if (ch == 110)
			newString[i] ="n";
		else if (ch == 111)
			newString[i] ="o";
		else if (ch == 112)
			newString[i] ="p";
		else if (ch == 113)
			newString[i] ="q";
		else if (ch == 114)
			newString[i] ="r";
		else if (ch == 115)
			newString[i] ="s";
		else if (ch == 116)
			newString[i] ="t";
		else if (ch == 117)
			newString[i] ="u";
		else if (ch == 118)
			newString[i] ="v";
		else if (ch == 119)
			newString[i] ="w";
		else if (ch == 120)
			newString[i] ="x";
		else if (ch == 121)
			newString[i] ="y";
		else if (ch == 122)
			newString[i] ="z";
		//Спец символы и цыфры
		else if (ch == 48)
			newString[i] ="0";
		else if (ch == 49)
			newString[i] ="1";
		else if (ch == 50)
			newString[i] ="2";
		else if (ch == 51)
			newString[i] ="3";
		else if (ch == 52)
			newString[i] ="4";
		else if (ch == 53)
			newString[i] ="5";			
		else if (ch == 54)
			newString[i] ="6";
		else if (ch == 55)
			newString[i] ="7";
		else if (ch == 56)
			newString[i] ="8";
		else if (ch == 57)
			newString[i] ="9";			
		else if (ch == 32) // Пробел
			newString[i] =" ";
		else if (ch == 40)
			newString[i] ="(";
		else if (ch == 41)
			newString[i] ="";
		//Непонятная билебарда
		else if (ch == 192)
			newString[i] ="А";
		else if (ch == 193)
			newString[i] ="Б"; 
		else if (ch == 194)
			newString[i] ="В";
		else if (ch == 195)
			newString[i] ="Г";
		else if (ch == 196)
			newString[i] ="Д";
		else if (ch == 197)
			newString[i] ="Е";
		else if (ch == 198)
			newString[i] ="Ж";
		else if (ch == 199)
			newString[i] ="З";
		else if (ch == 200)
			newString[i] ="И";
		else if (ch == 201)
			newString[i] ="Й";
		else if (ch == 202)
			newString[i] ="К";	
		else if (ch == 203)
			newString[i] ="Л";	
		else if (ch == 204)
			newString[i] ="М";
		else if (ch == 205)
			newString[i] ="Н";
		else if (ch == 206)
			newString[i] ="О";
		else if (ch == 207)
			newString[i] ="П";
		else if (ch == 208)
			newString[i] ="Р";
		else if (ch == 209)
			newString[i] ="С";
		else if (ch == 210)
			newString[i] ="Т";
		else if (ch == 211)
			newString[i] ="У";
		else if (ch == 212)
			newString[i] ="Ф";
		else if (ch == 213)
			newString[i] ="Х";
		else if (ch == 214)
			newString[i] ="Ц";
		else if (ch == 215)
			newString[i] ="Ч";
		else if (ch == 216)
			newString[i] ="Ш";
		else if (ch == 217)
			newString[i] ="Щ";
		else if (ch == 218)
			newString[i] ="Ъ";
		else if (ch == 219)
			newString[i] ="Ы";
		else if (ch == 220)
			newString[i] ="Ь";
		else if (ch == 221)
			newString[i] ="Э";
		else if (ch == 222)
			newString[i] ="Ю";
		else if (ch == 223)
			newString[i] ="Я";
		else if (ch == 224)
			newString[i] ="а";
		else if (ch == 225)
			newString[i] ="б"; 
		else if (ch == 226)
			newString[i] ="в";
		else if (ch == 227)
			newString[i] ="г";
		else if (ch == 228)
			newString[i] ="д";
		else if (ch == 229)
			newString[i] ="е";
		else if (ch == 230)
			newString[i] ="ж";
		else if (ch == 231)
			newString[i] ="з";
		else if (ch == 232)
			newString[i] ="и";
		else if (ch == 233)
			newString[i] ="й";
		else if (ch == 234)
			newString[i] ="к";	
		else if (ch == 235)
			newString[i] ="л";	
		else if (ch == 236)
			newString[i] ="м";
		else if (ch == 237)
			newString[i] ="н";
		else if (ch == 238)
			newString[i] ="о";
		else if (ch == 239)
			newString[i] ="п";
		else if (ch == 240)
			newString[i] ="р";
		else if (ch == 241)
			newString[i] ="с";
		else if (ch == 242)
			newString[i] ="т";
		else if (ch == 243)
			newString[i] ="у";
		else if (ch == 244)
			newString[i] ="ф";
		else if (ch == 245)
			newString[i] ="х";
		else if (ch == 246)
			newString[i] ="ц";
		else if (ch == 247)
			newString[i] ="ч";
		else if (ch == 248)
			newString[i] ="ш";
		else if (ch == 249)
			newString[i] ="щ";
		else if (ch == 250)
			newString[i] ="ъ";
		else if (ch == 251)
			newString[i] ="ы";
		else if (ch == 252)
			newString[i] ="ь";
		else if (ch == 253)
			newString[i] ="э";
		else if (ch == 254)
			newString[i] ="ю";
		else if (ch == 255)
			newString[i] ="я";
		else
			newString[i] ="?"; //Неизвестный символ
		i++;
		}
		String tempstr="";
		for(int b=0;b<(d+1);b++) 
			tempstr += newString[b];

	return tempstr; // Возвращает результат
	}
}// Конец класа UTF_to_Rus
ShadowAngel вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Mysql angelcamel Lineage II 12 30.07.2014 19:08
MySQL HeyYo Программирование / Programming 9 26.11.2011 16:33
2 проблемы JFS Lineage II 11 04.03.2011 19:15
Проблемы с гео. [Accept] Lineage II 5 27.01.2011 18:54
Старт ОБТ русской версии Aion Nytrex Игровые новости 0 07.12.2009 17:56


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 01:49. Часовой пояс GMT +3.

Вверх