找回密码
 点一下
查看: 1103|回复: 16

怎么转换ASCII码为字符,或者转换字符为ASCII码?

[复制链接]
发表于 2011-12-22 17:26:17 | 显示全部楼层 |阅读模式
想做一个储存汉字到本地的系统,为了解决同步问题,必须将字符串转换为整数。
但是遇到了一些困难,魔兽貌似是不能直接处理字符的……
想问一下:
魔兽里面有转换ASCII为字符,或者转换字符为ASCII码的函数吗?
发表于 2011-12-22 17:40:00 | 显示全部楼层
我记得没有
回复

使用道具 举报

发表于 2011-12-22 18:59:36 | 显示全部楼层
本来想帮你找那篇帖子来的,不过网通玩GA太卡了,放弃...
现成的函数当然没有,不过楼主说的完全可以做到

原理是把基础的ASCII码藏匿在物体的名称里,然后循环截取比对
回复

使用道具 举报

 楼主| 发表于 2011-12-22 19:05:07 | 显示全部楼层
我也记得没有……所以



为了解决这个问题我写了个小程序,将ASCII码32到255连成一个字符串打印到文件,然后通过“查找”字符在这个字符串中的位置就知道了该字符的ASCII码。

在C++中测试,这个想法得以很好的实现,但是问题出现了。

我将这些字符串复制到WE里面时,WE自动将这个ANSI字符串转换成了UTF-8……于是文字的编码便彻底乱了…………



所以在此提问

怎么产生一个包含所有ASCII码的UTF-8编码的字符串(C++)

或者UTF-8是怎么编码的(具体的中文字的编码是哪些呢?)

或者怎么不让WE自动转码……
回复

使用道具 举报

发表于 2011-12-22 19:06:42 | 显示全部楼层
物体可以是单位、物品、技能、buff、科技
比如楼主可以将war3map.w3h丢进hex编辑软件里,把某个科技的名称部分改写为 00 01 02 ... FF,然后导回地图,在游戏里获得物体名称,就可以得到原始的ASCII码了,
然后就是循环截取比对,获得各个字节的值
只是需要注意,一个汉字占用3个字节
回复

使用道具 举报

发表于 2011-12-22 19:08:48 | 显示全部楼层
只是需要注意,一个汉字占用3个字节
所以汉字实际上是要被分开成3部分分别比对
回复

使用道具 举报

 楼主| 发表于 2011-12-22 19:11:04 | 显示全部楼层

回 2楼(Conflux) 的帖子

Conflux:本来想帮你找那篇帖子来的,不过网通玩GA太卡了,放弃...
现成的函数当然没有,不过楼主说的完全可以做到

原理是把基础的ASCII码藏匿在物体的名称里,然后循环截取比对 (2011-12-22 18:59)
嗯嗯,我就是这样想的……但是转码过后基础的ASCII码就变了;
试过用WORD转码,但是不能被识别的字符就变成了??????
回复

使用道具 举报

发表于 2011-12-22 19:12:51 | 显示全部楼层
http://bbs.islga.org/read-htm-tid-19615.html

不知道这个是不是,网页完全打不开 =,=
回复

使用道具 举报

 楼主| 发表于 2011-12-22 19:17:30 | 显示全部楼层

回 4楼(Conflux) 的帖子

Conflux:物体可以是单位、物品、技能、buff、科技
比如楼主可以将war3map.w3h丢进hex编辑软件里,把某个科技的名称部分改写为 00 01 02 ... FF,然后导回地图,在游戏里获得物体名称,就可以得到原始的ASCII码了,
然后就是循环截取比对,获得各个字节的值
只是需要注意,一个汉字占用3个 .. (2011-12-22 19:06)
哦,谢谢~~

但是我刚才这样试的时候地图打不开呢……

我是直接修改war3map.J,将字符串粘贴到上面的,但是这样貌似会导致地图打不开……
难道是由于遇到了不能识别的字??

能帮我看看吗?
这是那个包含了32-255字符串的文件
ASCII.txt (1 KB, 下载次数: 21)
回复

使用道具 举报

 楼主| 发表于 2011-12-22 19:22:27 | 显示全部楼层

回 7楼(Conflux) 的帖子

Conflux:http://bbs.islga.org/read-htm-tid-19615.html

不知道这个是不是,网页完全打不开 =,= (2011-12-22 19:12)
太好了,原来有现成的啊,我看看~~

嗯(⊙_⊙)果然可以呢~~~

不过我还是想知道怎么产生一个UTF-8字符串……虽然他们都是一样的ASCII,但是怎么转码呢……
回复

使用道具 举报

发表于 2011-12-22 19:43:41 | 显示全部楼层
好卡,刚刚明明看不到别人回复的,怎么突然插入这么多
回复

使用道具 举报

发表于 2011-12-22 19:49:53 | 显示全部楼层

回 8楼(壹樓祭天祭百度) 的帖子

壹樓祭天祭百度:哦,谢谢~~

但是我刚才这样试的时候地图打不开呢……

....... (2011-12-22 19:17)
当然啊,因为256个字符里一大片都不能编译,还会扰乱语法,所以放在j和wts里都不行。藏在object name里就没事了
一部分连用\\ 转义都行不通
回复

使用道具 举报

发表于 2011-12-22 19:53:01 | 显示全部楼层

回 9楼(壹樓祭天祭百度) 的帖子

壹樓祭天祭百度:太好了,原来有现成的啊,我看看~~

嗯(⊙_⊙)果然可以呢~~~

....... (2011-12-22 19:22)
ANSI转utf-8我就不会了,呵呵

游戏里只认utf-8,其他的都显示?
WORD可以另存为utf-8以后,再往WE里面粘贴就好了
回复

使用道具 举报

 楼主| 发表于 2011-12-22 19:53:07 | 显示全部楼层
但是为什么我从他那里复制过来的字符串就可以直接使用了呢……
他也没有删掉什么字符啊。
哦,可能是最后的那个字符把“号吃掉了~~我再试试
回复

使用道具 举报

 楼主| 发表于 2011-12-22 19:55:59 | 显示全部楼层

回 12楼(Conflux) 的帖子

Conflux:ANSI转utf-8我就不会了,呵呵

游戏里只认utf-8,其他的都显示?
WORD可以另存为utf-8以后,再往WE里面粘贴就好了 (2011-12-22 19:53)
不是啊,Word另存为之后,编码就乱了呢。(貌似它会自动帮你转码)
而如果以UTF-8编码打开,就全变成?号了额
回复

使用道具 举报

发表于 2011-12-22 20:08:12 | 显示全部楼层
从WE里复制出来的东西,可以直接粘贴在WinHex里,再用记事本打开就变成地球字了
word里面的东西,另存为utf-8以后,直接复制出来,粘贴进WE不会变乱码
回复

使用道具 举报

 楼主| 发表于 2011-12-22 20:16:29 | 显示全部楼层
就是因为不会变乱码才有问题呢

因为编码变了,但是字却还是一样的,这样ASCII码不就和产生的不一样了吗……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-26 09:36 , Processed in 0.040874 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表