我正在尝试构建一个bookmarklet并且遇到了这个我刚才能解决的问题:一个\u8203
字符,Chrome在我的代码块中无助地告诉我(粘贴到JS控制台后) )是一个“无效的字符ILLEGAL”。
幸运的是Safari是那个告诉我它是\u8203
的人。
我正在编辑Sublime Text 2编辑器中的代码,并以某种方式复制进出它(我也试过TextEdit)无法删除它。
是否有某种网站会删除除ASCII以外的所有字符?
当我尝试保存为ISO 8859但由于字符不支持而将其保存为UTF-8“。
...是的这才是重点。摆脱我不受支持的邪恶角色。
我该怎么办?在十六进制编辑器中编辑我的文件?
仅供参考我实际上是通过重新输入代码来解决的(顺便说一下,这个代码来自这个网站)。
答案 0 :(得分:12)
是否有某种网站可以删除所有角色 除了ASCII?
您可以使用this website
您可以使用以下代码重新创建网站:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>- jsFiddle demo</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="/css/normalize.css">
<link rel="stylesheet" type="text/css" href="/css/result-light.css">
<style type="text/css">
textarea {
width: 800px;
height: 480px;
outline: none;
font-family: Monaco, Consolas, monospace;
border: 0;
padding: 15px;
color: hsl(0, 0%, 27%);
background-color: #F6F6F6;
}
</style>
<script type="text/javascript">
//<![CDATA[
$(function () {
$("button").click(function () {
$("textarea").val(
$("textarea").val().replace(/[^\u0000-\u007E]/g, "")
);
$("textarea").focus()[0].select();
});
}); //]]>
</script>
</head>
<body>
<textarea></textarea>
<button>Remove</button>
</body>
</html>
答案 1 :(得分:4)
嗯,我能想到的最简单的方法是使用sed
sed -i 's/[^[:print:]]//g' your_script.js
// ^^^^^ this can also be 'ascii'
或使用tr
tr -cd '\11\12\15\40-\176' < old_script.js > new_script.js
答案 2 :(得分:4)
您可以使用正则表达式来过滤0-127之外的所有内容。例如在javascript中:
text.replace(/[^\x00-\x7F]/g, "")
x00 = 0,x7f = 127
答案 3 :(得分:0)
非技术性解决方案:将文字粘贴到Gmail中的新电子邮件中,然后点击Tx(格式菜单中的清除格式)。为我工作。