微信小程序的input组件与textarea组件有一个参数是maxLength,用来限制输入字数的长度,但是有个坑:小程序的字符长度是按照字节数限制的,而不是字符数限制的,那么就造成Emoji的输入长度有问题。
由于javascript使用但是usc-2的编码,对于2个字节字符的Unicode,js是解析起来66的。但是会有以下问题
- 不常用字符,比如"𠮷"或者某些emoji表情(或者组合表情👩+🦱=👩🦱)占用3个或更多字节。
- javascript会将一个多字节字符识别成多个字符😱(看上面代码的最后一句str.length等于7)。
- 在某些场景下如果字符截取不完整会直接抛出异常😳😮😯😦😧😨😰😱😇
 
                   
                   
                   
                   
                             微信小程序的input组件与textarea组件的maxLength参数按字节限制,导致Emoji表情输入异常。因Emoji占用字节不固定,javascript解析时可能将其视为多个字符,影响字符计数与截取。
微信小程序的input组件与textarea组件的maxLength参数按字节限制,导致Emoji表情输入异常。因Emoji占用字节不固定,javascript解析时可能将其视为多个字符,影响字符计数与截取。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   1386
					1386
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            