解决网页乱码、打印文件乱码

出现乱码可能的原因:

编写网页时,使用的字符集和用户使用的字体集不一致

比如,开发者使用 utf-8 字符集写下了如下网页:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        .checked::before {
            width: 20px;
            height: 20px;
            content: "☑";
        }
    </style>
</head>
<body>
    <div class="checked"></div>
    <div class="uncheck">□</div>
</body>
</html>

效果如下:
imagepng
然而,如果用户下载了该表单,且由于其他原因,需要把 html 文件的 charset 改为 GB2312 (一种常见的中文编码),那么展示就会出现乱码:
imagepng

解决方法:
将乱码的字符用编码的形式写到 html 上:

<!DOCTYPE html>
<html lang="cn">
<head>
    <meta charset="GB2312">
    <style>
        .checked::before {
            width: 20px;
            height: 20px;
            content: "\2611";
        }
    </style>
</head>
<body>
    <div class="checked"></div>
    <div class="uncheck">&#9723; </div>
</body>
</html>

注意:CSS style 中用 16 进制的编码 (\2611),HTML entities 用 10进制编码 (◻ )

另外,可通过 charCodeAt 方法,获取字符的编码

> '☑'.charCodeAt(0)
9745
posted @ 2022-08-16 17:17  潘帕斯草原上的风  阅读(780)  评论(0)    收藏  举报