Есть вот такой код записи в БАЗУ.
С английскими символами работает хорошо. но когда начинаешь записывать русские получается не очень хорошо.
[Как должно было быть]
[Как записывает]
Подскажите как можно поправить?
С английскими символами работает хорошо. но когда начинаешь записывать русские получается не очень хорошо.
Lua:
function core.sql:NewCharacter(character)
self:CheckDataTable();
local owner_id = character.owner_id;
local attributes = character.attributes;
local vars = character.vars;
attributes = util.TableToJSON(attributes);
vars = util.TableToJSON(vars);
local query_string = [[INSERT INTO `char_base` (`steamid`, `attributes`, `vars`) VALUES (
]]..sql.SQLStr(owner_id)..[[,
]]..sql.SQLStr(attributes)..[[,
]]..sql.SQLStr(vars)..[[
);]];
sql.Query(query_string);
character.id = tonumber(sql.QueryValue("SELECT last_insert_rowid()"));
core:Notify("New empty character ["..character.id.."]["..character:GetVar("name", "Gabe 1337").."] was created for "..character.owner_id);
end;
function core.sql:SaveCharacter(character)
self:CheckDataTable();
local tab = {};
tab["steamid"] = character.owner_id;
tab["attributes"] = character.attributes;
tab["vars"] = character.vars;
tab["attributes"] = util.TableToJSON(tab["attributes"]);
tab["vars"] = util.TableToJSON(tab["vars"]);
local query_text = "";
for k, v in pairs(tab) do
query_text = query_text .. " `"..k.."` = "..sql.SQLStr(v)..",";
end;
query_text = string.sub(query_text, 1, -2);
local query = sql.Query("UPDATE `char_base` SET "..query_text.." WHERE `id` = "..character.id..";");
core:Notify("Character ["..character.id.."]["..character:GetVar("name", "Gabe 1337").."] saved ");
end;
[Как должно было быть]
JSON:
{"gender":"male","registred":true,"model":5.0,"name":"Василий Васильев","description":"Обычный man, 22 years old, Height 180, Weight 95, Синий eyes, Создатель"}
[Как записывает]
JSON:
{"gender":"male","registred":true,"model":5.0,"name":"Василий Ва�","description":"Обычный man, 22 years old, Height 180, Weight 95, Синий eyes, Соз"}
Подскажите как можно поправить?