Posts: 36
Threads: 4
Joined: Oct 2015
Reputation:
104
Witam, mam mały problem z którym od dłuższego czasu nie potrafię się uporać, Gdy dodaję jakąś nazwę z polskimi literami do bazy, w grze pobiera mi nazwę zastępującą polskie znaki pytajnikami, natomiast jeśli coś zapiszę od strony serwera, w bazie wyskakują zamiast polskich liter również różne znaki, próbowałem zmienić kodowanie mojej bazy sql ale nie widzę nigdzie tam kodowania ANSI.
Posts: 308
Threads: 26
Joined: Sep 2015
05.03.2016, 12:56
(This post was last modified: 05.03.2016, 13:25 by Nubzior.)
Sprawdzałeś przy kodowaniu danych cp1250_polish_ci bądź ascii_general_ci? Jeszcze przy inicjacji połączenia z bazą w G2O możesz spróbować wykonać te dwa zapytania, chodzi o to byś póki co ogarnął poprawne wysyłanie danych do bazy, z wyciągnięciem tego już nie będzie problemu jeśli pójdą dane do bazy z polskimi znaczkami.
Code:
SET NAMES cp1250;
SET CHARACTER_SET cp1250_polish_ci
Bądz analogicznie robisz z ascii_general_ci
Edit:
Sorry, bez tego ascii, popierdzieliło mi się coś.
Posts: 36
Threads: 4
Joined: Oct 2015
Reputation:
104
05.03.2016, 16:05
(This post was last modified: 05.03.2016, 16:08 by Galin.)
Nie mam w wyborze tego cp1250_polish_ci, jak wpisuje z palca to mi kodowanie zmienia na default schema, i nadal nic. Szukam póki co w google jak pobrać to cp1250.
Posts: 308
Threads: 26
Joined: Sep 2015
To masz jakiś wybrakowany MySQL, a co wypluwa zapytanie SHOW CHARACTER SET?
Posts: 36
Threads: 4
Joined: Oct 2015
Reputation:
104
05.03.2016, 17:11
(This post was last modified: 05.03.2016, 17:11 by Galin.)
armscii8 ARMSCII-8 Armenian armscii8_general_ci 1
ascii US ASCII ascii_general_ci 1
big5 Big5 Traditional Chinese big5_chinese_ci 2
binary Binary pseudo charset binary 1
cp1250 Windows Central European cp1250_general_ci 1
cp1251 Windows Cyrillic cp1251_general_ci 1
cp1256 Windows Arabic cp1256_general_ci 1
cp1257 Windows Baltic cp1257_general_ci 1
cp850 DOS West European cp850_general_ci 1
cp852 DOS Central European cp852_general_ci 1
cp866 DOS Russian cp866_general_ci 1
cp932 SJIS for Windows Japanese cp932_japanese_ci 2
dec8 DEC West European dec8_swedish_ci 1
eucjpms UJIS for Windows Japanese eucjpms_japanese_ci 3
euckr EUC-KR Korean euckr_korean_ci 2
gb18030 China National Standard GB18030 gb18030_chinese_ci 4
gb2312 GB2312 Simplified Chinese gb2312_chinese_ci 2
gbk GBK Simplified Chinese gbk_chinese_ci 2
geostd8 GEOSTD8 Georgian geostd8_general_ci 1
greek ISO 8859-7 Greek greek_general_ci 1
hebrew ISO 8859-8 Hebrew hebrew_general_ci 1
hp8 HP West European hp8_english_ci 1
keybcs2 DOS Kamenicky Czech-Slovak keybcs2_general_ci 1
koi8r KOI8-R Relcom Russian koi8r_general_ci 1
koi8u KOI8-U Ukrainian koi8u_general_ci 1
latin1 cp1252 West European latin1_swedish_ci 1
latin2 ISO 8859-2 Central European latin2_general_ci 1
latin5 ISO 8859-9 Turkish latin5_turkish_ci 1
latin7 ISO 8859-13 Baltic latin7_general_ci 1
macce Mac Central European macce_general_ci 1
macroman Mac West European macroman_general_ci 1
sjis Shift-JIS Japanese sjis_japanese_ci 2
swe7 7bit Swedish swe7_swedish_ci 1
tis620 TIS620 Thai tis620_thai_ci 1
ucs2 UCS-2 Unicode ucs2_general_ci 2
ujis EUC-JP Japanese ujis_japanese_ci 3
utf16 UTF-16 Unicode utf16_general_ci 4
utf16le UTF-16LE Unicode utf16le_general_ci 4
utf32 UTF-32 Unicode utf32_general_ci 4
utf8 UTF-8 Unicode utf8_general_ci 3
utf8mb4 UTF-8 Unicode utf8mb4_general_ci 4
Posts: 308
Threads: 26
Joined: Sep 2015
05.03.2016, 17:16
(This post was last modified: 05.03.2016, 17:22 by Nubzior.)
No to weź sobie zainstaluj jakiegoś PhpMyAdmina na serwie, i pozmieniaj metodę porównywania napisów na cp1250_polish_ci bo widać jak byk, że posiadasz to kodowanie.
Edit.
Aż sam sprawdzę na jakimś testowym serwie o co z tym chodzi.
Posts: 308
Threads: 26
Joined: Sep 2015
05.03.2016, 17:36
(This post was last modified: 05.03.2016, 18:11 by Nubzior.)
Dobra, u mnie śmiga.
Kod serwerowy:
Squirrel Script
local mysqlHandler = null;
addEvent("onInit", function()
{
mysqlHandler = mysql_connect("127.0.0.1", "root", "", "go");
mysql_query(mysqlHandler, "SET NAMES cp1250;");
mysql_query(mysqlHandler, "SET CHARACTER_SET cp1250_polish_ci");
mysql_query(mysqlHandler, "INSERT INTO `gracze` (`nick`, `haslo`) VALUES ('Józuś', 'ąćópl');");
});
addEvent("onCommand", function(pid, cmd, params)
{
if(cmd == "test")
{
local args = sscanf("ss", params);
if (args)
{
mysql_query(mysqlHandler, "INSERT INTO `gracze` (`nick`, `haslo`) VALUES ('" + args[0] + "', '" + args[1] + "');");
}
}
});
Baza danych:
Code:
CREATE DATABASE IF NOT EXISTS `go` DEFAULT CHARACTER SET cp1250 COLLATE cp1250_polish_ci;
USE `go`;
CREATE TABLE IF NOT EXISTS `gracze` (
`nick` varchar(20) COLLATE cp1250_polish_ci NOT NULL,
`haslo` varchar(20) COLLATE cp1250_polish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=cp1250 COLLATE=cp1250_polish_ci;
Posts: 36
Threads: 4
Joined: Oct 2015
Reputation:
104
Zrobiłem dokładnie tak samo i zapisało mi w bazie z pytajnikami, hmm jutro popatrzę dokładniej.
Posts: 308
Threads: 26
Joined: Sep 2015
05.03.2016, 18:10
(This post was last modified: 05.03.2016, 18:11 by Nubzior.)
Zaaktualizowałem swój post wyżej, zobacz czy nie tylko tabela jak i pola w niej mają kodowanie cp1250_polish_ci ale też czy baza je posiada, to ważne.
Ogólnie na tym przykładzie wyżej jestem w 100% pewny, że działa bo na nim sprawdzałem.