我从数据库中检索了一个字符串,该字符串似乎包含无效字符。
我试图保存JSFiddle,但是JS Fiddle似乎正在清理代码。
因此,我将粘贴屏幕截图,并希望它足够。
这是我的IDE中的代码
如果将代码粘贴到JSFiddle中,则会得到:
在两种情况下,在“标题”之后,都会突出显示一个奇怪的非法字符。
如何从字符串中清除这些无效字符?
答案 0 :(得分:2)
如果您认为不必要,最好在添加到数据库之前先清理字符串。
否则,
无效字符在解析时会转换为0xFFFD
,因此您可以将其替换为
myString = myString.replace(/\uFFFD/g, '')
或
您可以使用白名单。如果您只想接受字母,数字,空格和一些标点符号,可以这样做
myString = myString.replace(/[^a-z0-9 ,.?!]/ig, '')
答案 1 :(得分:0)
应该是在将数据保存到数据库中时发生的编码问题。接收的数据的编码应与存储数据的数据库的编码相同。将字符集设置为utf8。也请检查您是否已添加此元标记<meta charset="utf-8">
如果您将php与mysql一起使用,则将是这样做的方式。
mysqli_set_charset($con,"utf8");