Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Фикс Rufix (исправление русского чата в windows)

Тема в разделе "Неподтвержденные плагины", создана пользователем repeat, 21 авг 2011.

Статус темы:
Закрыта.
  1. lol63

    lol63 Модератор Переводчик

    Баллы:
    153
    repeat, а что если попробовать записать всю кириллицу в массив и уже перекодировывать каждый отдельный элемент массива?
     
    Оригинало_о нравится это.
  2. Хостинг MineCraft
    <
  3. Автор темы
    repeat

    repeat Старожил Девелопер Пользователь

    Баллы:
    123
    не совсем понял что ты имеешь ввиду. если умеешь напиши на всевдо коде или в край на любом языке.
    для тестирования я использовал lua (код не оптимизирован абсолютно). как оказалось кроме 2-х байтной кодировки ещё есть 4-х байтная (вот тут лог).
    сперва я пробегался по 4-х байтной, потом по исправленному тексту 2-х байтной, чтобы при любом раскладе конвертация прошла.

    PHP:
    function print(data)
        if 
    not data then data "\n" end
        wfile
    :write(data.."\n")
    end

    function parse2b(s)
        
    local z string.gsub(s,"([\195\194])(.)",function(k,v)
            if (
    k:byte() == 194 and v:byte() == 184then
                utf8 
    "\209\145"
            
    elseif (k:byte() == 195 and v:byte() >=128 and v:byte() <= 191then
                utf8 
    k:byte()*256 v:byte() + 0xD10
                utf8 
    string.format("%s%s",string.char(math.floor(utf8/256)),string.char(utf8-math.floor(utf8/256)*256))
            else 
    utf8 k..v
            end
            
    return utf8
    end
    )
    return 
    z
    end

    function parse4b(s)
        
    local z string.gsub(s,"(\195[\144\145])\194(.)",function(k,v)
            if (
    k:byte(2) == 145then
                utf8 
    k:byte()*256 v:byte() + 0xD40
                utf8 
    string.format("%s%s",string.char(math.floor(utf8/256)),string.char(utf8-math.floor(utf8/256)*256))
            elseif (
    k:byte(2) == 144then
                utf8 
    k:byte()*256 v:byte() + 0xD00
                utf8 
    string.format("%s%s",string.char(math.floor(utf8/256)),string.char(utf8-math.floor(utf8/256)*256))
            else 
    utf8 k..v
            end
            
    return utf8
    end
    )
    return 
    z
    end

    local fname_in
    fname_out = ...
    fname_in "server.log"
    if (fname_in == nilthen
        io
    .write("USAGE:\n")
        
    io.write("ruFixer.exe inputFile outputFile\n")
        
    os.exit()
    end
    fname_out 
    fname_out or fname_in..".fix"

    file assert(io.open(fname_in"r"))
    wfile assert(io.open(fname_out"w+"))
    file:read("*l")
    repeat
        line 
    parse4b(t)
        
    line parse2b(line)
        print(
    line)
        
    file:read("*l")
    until t == nil
     
  4. DaveDee

    DaveDee Активный участник Пользователь

    Баллы:
    63
    Код:
    2011-10-14 19:20:09 [INFO] <Hiros> Dave, shas napishu qwertyuiop
    2011-10-14 19:20:16 [INFO] [ruFixDebug]:йцукенгшщзхъ:
    2011-10-14 19:20:16 [INFO] <Hiros> йцукенгшщзхъ
    2011-10-14 19:20:22 [INFO] [ruFixDebug]:asdfghjkl;':
    2011-10-14 19:20:22 [INFO] <Hiros> asdfghjkl;'
    2011-10-14 19:20:26 [INFO] [ruFixDebug]:фывапролджэ:
    2011-10-14 19:20:26 [INFO] <Hiros> фывапролджэ
    2011-10-14 19:20:27 [INFO] IIWOLFII was killed by an angry Spider 
    2011-10-14 19:20:27 [INFO] [HeroicDeath] IIWOLFII was killed by an angry Spider
    2011-10-14 19:20:28 [INFO] Player Respawning
    2011-10-14 19:20:31 [INFO] [ruFixDebug]:zxcvbnm,./:
    2011-10-14 19:20:31 [INFO] <Hiros> zxcvbnm,./
    2011-10-14 19:20:31 [INFO] Connection reset
    2011-10-14 19:20:31 [INFO] IIWOLFII lost connection: disconnect.quitting
    2011-10-14 19:20:32 [INFO] /31.23.104.246:2347 lost connection
    2011-10-14 19:20:36 [INFO] [ruFixDebug]:ячсмитьбю.:
    2011-10-14 19:20:36 [INFO] <Hiros> ячсмитьбю.
    2011-10-14 19:20:38 [INFO] [ruFixDebug]:îê õâàòèò:
    2011-10-14 19:20:38 [INFO] <Chief DaveDee> ок хватит
    У товарища Убунта 10-ая
    У нас Debian 6.0
    В игре его видно как "CPPPCPCPC CPCPPC"
    -DruFixConsole="UTF-8" -DruFixLogFile="UTF-8"
     
  5. Автор темы
    repeat

    repeat Старожил Девелопер Пользователь

    Баллы:
    123
    без лог файла не рассматриваю
     
  6. Grifhell

    Grifhell Активный участник

    Баллы:
    78
    Какие параметра батника и версия плагина актуальна сейчас?
    Пока отказался от ртулкита, будет достаточно рпосто руского чата в консоли стандартного батника с возможностью ввода команд
     
    HoShiMin нравится это.
  7. Автор темы
    repeat

    repeat Старожил Девелопер Пользователь

    Баллы:
    123
    http://rubukkit.org/threads/rufix-исправление-русского-чата-в-windows.1224/page-9#post-19809
     
    Grifhell нравится это.
  8. DaveDee

    DaveDee Активный участник Пользователь

    Баллы:
    63
    пардон, пропустил этот момент
    21:15:39 и 21:29:30
     

    Вложения:

    • server.zip
      Размер файла:
      22 КБ
      Просмотров:
      1
  9. Автор темы
    repeat

    repeat Старожил Девелопер Пользователь

    Баллы:
    123
    можно тоже самое без ruFix?
    забавно. без руфикса я так понимаю всё работает отлично у пользователей линуксов
     
  10. DaveDee

    DaveDee Активный участник Пользователь

    Баллы:
    63
    Проблемно немного но постараюсь чуть попозже.
    Возможно в связке линукс-клиент и линукс-сервер замечательно друг друга понимают, тогда возможно есть способ отслеживать входящие сообщения по кодировке и не обрабатывать, если они изначально в утф?
     
  11. Автор темы
    repeat

    repeat Старожил Девелопер Пользователь

    Баллы:
    123
    уже не требуется. проверил - это косяк руфикса. он портит кодировку UTF-8, если она сразу приходит нормальной. буду ковырять.
     
  12. DaveDee

    DaveDee Активный участник Пользователь

    Баллы:
    63
    ок, будем ждать нового.
     
  13. Автор темы
    repeat

    repeat Старожил Девелопер Пользователь

    Баллы:
    123
    обновлённая версия в первом сообщении
     
  14. DaveDee

    DaveDee Активный участник Пользователь

    Баллы:
    63
    ок, ставлю на тест, но пока тел с линухой в зоне видимости не наблюдаю.
     
  15. D_ART

    D_ART Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    D_ART98
    Имя в Minecraft:
    D_ART
    repeat,посмотрев на первое сообщения я подумал что этот один файлик может работать так и на windows так и на linux.Я правильно понял?
     
  16. Автор темы
    repeat

    repeat Старожил Девелопер Пользователь

    Баллы:
    123
    по идеи - да.
     
  17. D_ART

    D_ART Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    D_ART98
    Имя в Minecraft:
    D_ART
    так по идеи или точно?

    З.Ы Надо найти кого-нибудь на linux чтобы тестировать плагины
     
  18. DaveDee

    DaveDee Активный участник Пользователь

    Баллы:
    63
    Теперь все замечательно, благодарю за оперативность.
     
  19. Toxuin

    Toxuin Старожил Девелопер Пользователь

    Баллы:
    103
    У меня линукс на сервере, макось (unix-like система, кстати) на клиенте. Макось отправляет серверу юникод, как и линукс.
    Завтра весь день буду тестировать новую версию, о результатах отпишусь вечером.
     
  20. Автор темы
    repeat

    repeat Старожил Девелопер Пользователь

    Баллы:
    123
    приму в дар от тебя компьютер с настроенным линухом и миником для тестирования. тогда и точно ;)
     
    ВремяПриключений нравится это.
  21. HeroBlood

    HeroBlood Активный участник

    Баллы:
    63
    2011-10-15 07:58:36 [INFO] [Sr. Admin] HeroBlood: СЏ, СЋ
    2011-10-15 07:58:36 [WARNING] Failed to handle packet: java.lang.ArrayIndexOutOfBoundsException: 257
    java.lang.ArrayIndexOutOfBoundsException: 257
    at org.bukkit.craftbukkit.TextWrapper.wrapText(TextWrapper.java:65)
    at net.minecraft.server.NetServerHandler.sendPacket(NetServerHandler.java:670)
    at org.bukkit.craftbukkit.entity.CraftPlayer.sendRawMessage(CraftPlayer.java:118)
    at org.bukkit.craftbukkit.entity.CraftPlayer.sendMessage(CraftPlayer.java:122)
    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:736)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:715)
    at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:471)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)

    Написал буквы я, ю и вылетело с этой ошибкой. Сервер не упал но в клиенте написано - Internal server error
    В консоле видно буквы я,ю.
     
Статус темы:
Закрыта.

Поделиться этой страницей