当前位置:  开发笔记 > 编程语言 > 正文

支持Unicode的字符串(1)程序

如何解决《支持Unicode的字符串(1)程序》经验,为你挑选了1个好方法。

有没有人有一个代码示例用于unicode感知字符串程序?编程语言并不重要.我想要一些与unix命令"strings"基本相同的东西,但它也可以在unicode文本(UTF-16或UTF-8)上运行,拉动英语字符和标点符号的运行.(我只关心英文字符,而不是任何其他字母).

谢谢!



1> jpalecek..:

你只是想使用它,还是因某些原因坚持使用代码?

在我的Debian系统上,似乎strings命令可以开箱即用.请参阅联机帮助页中的exercept:

  --encoding=encoding
       Select the character encoding of the strings that are to be found.  Possible values for encoding are: s = single-7-bit-byte characters (ASCII, ISO  8859,
       etc.,  default),  S  = single-8-bit-byte characters, b = 16-bit bigendian, l = 16-bit littleendian, B = 32-bit bigendian, L = 32-bit littleendian. Useful
       for finding wide character strings.

编辑:好的.我不知道C#所以这可能有点毛茸茸,但基本上,你需要搜索交替的零和英文字符的序列.

byte b;
int i=0;
while(!endOfInput()) {
  b=getNextByte();
LoopBegin:
  if(!isEnglish(b)) {
    if(i>0) // report successful match of length i
    i=0;
    continue;
  }
  if(endOfInput()) break;
  if((b=getNextByte())!=0)
    goto LoopBegin;
  i++; // found another character
}

这应该适用于小端.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有