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