我正在使用一些可以在文档中的某处插入随机杂项unicode符号的javascript。 (like these symbols)
但是,我想确保我只插入生成的字符,如果该字符不打印为其中一个“”方格。
到目前为止,我正在生成2600到2699之间的随机数。但我想确保它们有效而不是正方形。没关系我没有生成十六进制代码,只是整数,我缺少哪些符号并不重要。
String.fromCharCode(2600+(Math.floor(Math.random()*70)));
这几次打电话会给我:“ਖ਼ੁੜਯ”
干杯!
答案 0 :(得分:2)
有两个基本的东西可能会显示为这样的正方形(或菱形中的问号,或者完全不同的东西,例如正方形中的代码点值):
对于第一种情况,你可以尝试丢弃无效的代码点(非字符),但是对于第二种情况你几乎没有选择,因为它取决于字体,浏览器,其他安装的字体,技术用于渲染文本等
答案 1 :(得分:0)
仅仅因为它是星期天,我攻击了一个小JS,它测试在画布上绘制的代码点是否看起来像0xFFFF字符。这只是比较像素的问题。因此,如果您的字体(在示例代码中我使用的是任何默认系统字体)没有代码点,那么就像0xFFFF一样绘制(希望如此)。
这可以改进,但作为周日黑客,它是非常令人满意的。您可以在GitHub上查看the code。