проблема с русским текстом

anklain

Участник
Автор темы
82
4
Версия MoonLoader
.027.0-preview
Здраствуйте, работаю в sublime text, и проблема с кодировкой UTF-8, ставлю перед русским текстом что это в u8, и пытался переоткрыть файл в данной кодировке, все равно не то, все равно на непонятных испанско-китайских символах пишет, помогите пожалуйста :D
 

RedHolms

Известный
Проверенный
620
367
Для начала надо бы понять, что u8 (либо же, encoding.utf8:encode) перевод из СТАНДАРТНОЙ кодировки (encoding.default) в UTF-8
Для вывода в чат можешь использовать такой код:
(код немного измени под свои нужны)
Lua:
local encoding = require 'encoding'
encoding.default = "UTF-8"

do
   local _ChatColorStr_Tag = string.format("{%06x}", цвет)

   printChatEx = function(color, fmt, ...)
      local text = encoding.cp1251:encode(tostring(fmt):format(...))

      local color_str = string.format("{%06x}", color)

      local chat_msg = тэг .. color_str .. ": " .. text

      print("[CHAT] " .. _ChatColorStr_Tag .. chat_msg)
      sampAddChatMessage(chat_msg, цвет)
   end
end

printChat = function(fmt, ...)
   printChatEx(CFG.CHAT_COLOR_DEFAULT, fmt, ...)
end
[/icode]
 

anklain

Участник
Автор темы
82
4
Для начала надо бы понять, что u8 (либо же, encoding.utf8:encode) перевод из СТАНДАРТНОЙ кодировки (encoding.default) в UTF-8
Для вывода в чат можешь использовать такой код:
(код немного измени под свои нужны)
Lua:
local encoding = require 'encoding'
encoding.default = "UTF-8"

do
   local _ChatColorStr_Tag = string.format("{%06x}", цвет)

   printChatEx = function(color, fmt, ...)
      local text = encoding.cp1251:encode(tostring(fmt):format(...))

      local color_str = string.format("{%06x}", color)

      local chat_msg = тэг .. color_str .. ": " .. text

      print("[CHAT] " .. _ChatColorStr_Tag .. chat_msg)
      sampAddChatMessage(chat_msg, цвет)
   end
end

printChat = function(fmt, ...)
   printChatEx(CFG.CHAT_COLOR_DEFAULT, fmt, ...)
end
[/icode]
ни че не понял, максимум что у меня поменялось, так это вместо encoding cp1251 на utf 8, что тоже не помогло, можно подробнее?

или поменять на что то sublime text
 

RedHolms

Известный
Проверенный
620
367
ни че не понял, максимум что у меня поменялось, так это вместо encoding cp1251 на utf 8, что тоже не помогло, можно подробнее?

или поменять на что то sublime text
Попытаюсь объяснить

Ты пишешь в кодировке UTF-8, значит, все строки в файле будут в UTF-8

Функция encoding.cp1251:encode переводит из кодировки в encoding.default в CP1251 (CP1251 - кодировка сампа)
Строкой encoding.default = "UTF-8" мы задаём стандартную кодировку на UTF-8, т.е на кодировку файла, и соответственно строка encoding.cp1251:encode переведёт текст из UTF-8 (encoding.default) в CP1251

:encode можно не дописывать

Возвращаясь к коду выше, что бы с помощью него вывести строку в чат, используй функцию printChat, т.е:
Lua:
printChat("Привет, САМП!")
 
  • Нравится
Реакции: whyega52

anklain

Участник
Автор темы
82
4
Попытаюсь объяснить

Ты пишешь в кодировке UTF-8, значит, все строки в файле будут в UTF-8

Функция encoding.cp1251:encode переводит из кодировки в encoding.default в CP1251 (CP1251 - кодировка сампа)
Строкой encoding.default = "UTF-8" мы задаём стандартную кодировку на UTF-8, т.е на кодировку файла, и соответственно строка encoding.cp1251:encode переведёт текст из UTF-8 (encoding.default) в CP1251

:encode можно не дописывать

Возвращаясь к коду выше, что бы с помощью него вывести строку в чат, используй функцию printChat, т.е:
Lua:
printChat("Привет, САМП!")
получается мне надо поменять перед русской строкой кода на cp1251, а UTF-8 это как поддержка того, что не обрушится это все...верно?(хотя бы про цп1251)

оооо, работает! Благодарю тебя, что б я без тебя делал :)
 
Последнее редактирование:

Vespan

Чешский луашер
Проверенный
2,123
1,729
Здраствуйте, работаю в sublime text, и проблема с кодировкой UTF-8, ставлю перед русским текстом что это в u8, и пытался переоткрыть файл в данной кодировке, все равно не то, все равно на непонятных испанско-китайских символах пишет, помогите пожалуйста :D
при открытии любого файла,где есть русские символъ сразу делай так
1664385757826.png