| 发表于:2007-08-30 09:31:10 楼主 |
private uint uid() { //这段字符串是从二进制文件读出来的,是用c++写进去的,写进去的时候是用 unicode的,现在用c#取出来了,是%\0#\0%\0)\0!\0(\0*\0%\0,应该是%#%)&!(*%,九个字符,可是取出来因为是unicode的,变成18个字符,我现在想去掉右边的\0,但是试了好多办法不行,下面一段代码是网上找的,转出来还是18个,请高手指定! string szbu = %\0#\0%\0)\0!\0(\0*\0%\0; encoding ascii = encoding.ascii; encoding unicode = encoding.utf8; byte[] unicodebytes = ascii.getbytes(szbu); byte[] asciibytes = encoding.convert(unicode, ascii, unicodebytes); char[] szbuf = new char[ascii.getcharcount(asciibytes, 0, asciibytes.length)]; ascii.getchars(asciibytes, 0, asciibytes.length, szbuf, 0); string asciistring = new string(szbuf); } |
|
|
|
|