Re: [閒聊] coffeemud

作者: primochen (primo)   2016-12-12 22:05:24
※ 引述《gasbomb (胖丁)》之銘言:
: http://www.coffeemud.org/
: 前面討論串有人提到這個,在JAVA底下跑的mud
: 剛剛抓下來試了一下,使用上實在非常便利
: windows底下只要會double click就跑得起來了! XD
: 然後這引擎也提供了很多方便的工具
: 內建的東西套一套五分鐘就有一個無腦打怪的迷宮可以玩了
: 不過好像沒辦法支援utf-8跟big-5的樣子 :(
: 想改也不知從何改起,真是可惜了功能這麼強的軟體阿
: -
: 要是對中文的支援性搞定了
: 說不定可以看到新站一直開站一直倒站的場景...!?
回這麼久以前的文章 真不好意思
最近才發現這個好東西
至少目前在 github上面的版本 utf-8支援的還不錯
只要稍微改幾個地方 如下
輸出都是UTF-8
coffeemud.ini
# CHARSETINPUT is the name of the Java Character set to use for the default
# input stream. Default is iso-8859-1
#CHARSETINPUT=iso-8859-1
CHARSETINPUT=utf-8
# CHARSETOUTPUT is the name of the Java Character set to use for the default
# output stream. Default is iso-8859-1
#CHARSETOUTPUT=iso-8859-1
CHARSETOUTPUT=utf-8
Backend.java 這個是改內定DB 如果改用mysql等 就不用了
他在處理UTF-8時候 有bug 整個忽略了
else
{
// int val = 0;
// for (int i = 0; i < 4; i++)
// {
// c = (char) (fileBuffer[++dex[0]] & 0xFF);
// if (c >= 'A')
// val = (16 * val) + (c - 'A');
// else
// val = (16 * val) + (c - '0');
// }
String utf8 = "\\u";
for (int i = 0; i < 4; i++)
{
utf8 += (char) (fileBuffer[++dex[0]] & 0xFF);
}
buffer.append(decode(utf8));
static final String decode(final String in)
{
String working = in;
int index;
index = working.indexOf("\\u");
while(index > -1)
{
int length = working.length();
if(index > (length-6))break;
int numStart = index + 2;
int numFinish = numStart + 4;
String substring = working.substring(numStart, numFinish);
int number = Integer.parseInt(substring,16);
String stringStart = working.substring(0, index);
String stringEnd = working.substring(numFinish);
working = stringStart + ((char)number) + stringEnd;
index = working.indexOf("\\u");
}
return working;
}
所有的 cmvp樣板檔 這樣編輯器也可以正常看到中文
<META HTTP-EQUIV="Pragma" CONTENT="no-cache" charset="UTF-8">
<

Links booklink

Contact Us: admin [ a t ] ucptt.com