踩到了不可见字符\u200B的坑(0长度的字符)

接收前端输入的时候,由于前端是富文本,去掉空格后,发现还是有字符串,但是看到的却是"",长度是1,但是人眼看到的是没有字符(0长度的),一直找不到原因。

后来网上查找资料发现了。原来是\u200b ((Zero width space) characters)遂去除。
js去除:str.replace(/\u200B/g,’’);
 

 

UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200b’的解决方法

            if "\u200b" in content:
                print("我错了")
                print(content)
                data_list.append("有错误字符")
            else :
                data_list.append(content)

如果有的话 替换掉 虽然不是很好的解决方法 但是也是解决了这个bug
 

iOS开发中删除不可见的Unicode字符可以通过以下步骤实现: 步骤1:获取字符串中的Unicode字符 首先,我们将字符串转换成一个字符数组,然后逐个检查每个字符的Unicode值。可以使用NSString的`characterAtIndex`方法来获取单个字符的Unicode值,如下所示: ```objective-c NSString *str = @"Hello \u200BWorld!"; NSMutableArray *characters = [NSMutableArray array]; for (int i = 0; i < [str length]; i++) { unichar c = [str characterAtIndex:i]; [characters addObject:[NSNumber numberWithUnsignedInt:c]]; } ``` 步骤2:过滤不可见的Unicode字符 然后,根据Unicode字符的范围或特定的Unicode值,将不可见的字符过滤出去。在Unicode表中,0x0000至0x001F范围内的Unicode字符通常是不可见的。 ```objective-c NSMutableArray *visibleCharacters = [NSMutableArray array]; for (NSNumber *unicodeValue in characters) { unichar c = [unicodeValue unsignedIntValue]; if (c >= 0x0020 || (c >= 0x0009 && c <= 0x000D)) { [visibleCharacters addObject:[NSString stringWithCharacters:&c length:1]]; } } ``` 步骤3:生成过滤后的字符串 最后,将过滤后的字符数组重新组合成一个字符串: ```objective-c NSString *filteredString = [visibleCharacters componentsJoinedByString:@""]; ``` 现在,`filteredString`中的不可见的Unicode字符已经被删除了。 注意:上述代码仅演示了删除不可见的Unicode字符的基本思路,具体的实现可能会根据你的需求而有所不同。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值