本帖最后由 kingtung 于 2009-12-23 11:18 编辑
12.23 11:17备注:最近Q农场的崛起又狠狠的刺激了一大堆人的雄性荷尔蒙,但我想说的是,本文只适用于漫游版农场的解决方案。请一定要看清楚哦&.&
手太多,很多人不屑于回答或发布解决方案.
为什么都要搞这么麻烦呀,只需要修改两个文件.增加12个字符就可以解决的事情.
问题根源:出在 icovn转换上面,也就是在Windows下面的Unicode 变不是UTF-16,而是UCS-2, Linux下面应该是UCS-2BE,不同的系统修改不同的编码方式就可以了。
so:
1.打开newfarm/newfarmjson.php 和newfarm/newfarm.php
2.在这2个文件中搜索UCS-2 替换为UCS-2BE。
3.上传覆盖,OVER。
问题解决。
============
若好奇,可来www.chinagolf8.cn进农场和牧场自己看看,不过恳请不要注册垃圾用户名哦,希望能在设置里填写一下实名.谢谢!
============
也就是说:
A.如果你用的是WINDOWS的服务器,那么上面两个文件中所有icovn中的编码值都应为UCS-2.
B.如果你用的是Linux的服务器,那么上面两个文件中所有icovn中的编码值都应为UCS-2BE.
这样两个系统中都不会出现用户名乱码了.
PS相关知识:
一般认为Windows下以16bit表示的Unicode并不是UTF-16,而是UCS-2。UCS-2是一种编码格式,同时也是指以一一对应关系的Unicode实现。在UCS-2中只能表示U+0000到U+FFFF的BMP(Basic Multilingual Plane ) Unicode编码范围,属于定长的Unicode实现,而UTF-16是变长的,类似于UTF-8的实现,但是由于其字节长度的增加,所以BMP部分也做到了一一对应,但是其通过两个双字节的组合可以做到表示全部Unicode,表示范围从U+0000 到 U+10FFFF。关于这一点,我在很多地方都看到混淆了,混的我自己都有点不太肯定自己的说法了,还好在《UTF-16/UCS-2》中还是区别开了,不然我不知道从哪里去寻找一个正确答案。(哪怕在IBM的相关网页上都将UCS-2作为UTF-16的别名列出). |