前一段时间在写代码时(在VC下),要去掉网页内容中的空格之类的空白符,发现一个问题,那就是有一些空格并没有被去掉,一时不知所措,郁闷了一段时间。后来发现,在已经早有准备的UNICODE上出现了错误,或是理解为在UNICODE上出现了转机。没想到的是在UNICODE下空格是0x3000(12288),而一直当成0x0020(32),UNICODE下的扩展ASCII。若是英文下的空格那肯定是0x0020,若是中文下的空格那就是0x3000,当然是在UNICODE大环境下。

        在写网页文章时,不乏在中文输入法的情况下输入空格,这时要想去掉就的去判断是否==0x3000,这样才能做进一步的处理。现在还没有发现在中文输入法下,输入TAB键是否不一样!我目前发现还是一样的,都是0x0009(9),若发现不行了,再回来补充吧!

        在网页中的字符集编码又不相同。网页字符集常用的有:UTF-8、GB2312、GB18030等,在这些字符集下空格的编码又不相同,它是0xA1A1(41377),在编程时可能要注意。

        虽然想空格这样的可能是一些不起眼的字符,但是在细化处理时却比较麻烦。比如从网页中读用户输入的数据并保存到数据库时,就很有可能要对用户“无意”输入的一些类似空格等字符进行处理,这时就要注意了。若是在VC中嵌入网页并进行数据的处理,则就更应该注意一些空白符了。我发现通常从网页中获取的空白符包括:

空字符(0x0000)、 
     
    
(0x0007)、 
    
(0x0009)、 
    
(0x 
     
    
      000A 
     /n)、 
    
(0x000B)、 
    
(0x 
    
      000C 
    )、 
    
(0x000D /r)、 
    
(0x0020),英文下ASCII扩充的UNICODE空格、 
    
(0xA 
    
      1A 
    1),UTF-8或GB2312或其他网页制式中的空格、 
    
(0x3000),中文下UNICODE空格。


在进行细化处理时显得很重要。