0

gh-pages 正在 mobibaking 一个文本文件。. . 我们的 CI 构建服务器将一些构建工件复制到 gh-pages。

在本地,我可以看到文件编码是 UTF-8,如果我下载文件并打开它,它在文本编辑器中呈现得很好。

但是,在 Safari、Firefox 和 Chrome 中,特殊字符(勾号、复选标记等)正在被 mojibaked。如何指示使用正确的文件编码?

4

1 回答 1

1

在没有得到指示的情况下,浏览器无法知道对纯文本文件使用什么文件编码。设置 .htaccess 会有所帮助,但取决于 Web 服务器。一种更便携的方法是确保文本文件以 UTF8 字节顺序标记 (BOM) 开头。一种方法如下:

#!/bin/sh

if [ $# -eq 0 ];
then
        echo usage $0 files ...
        exit 1
fi

for file in $*;
do
        echo "# Processing: $file" 1>&2
        if [ ! -f "$file" ];
        then
                echo Not a file: "$file" 1>&2
                exit 1
        fi
        TYPE=`file - < "$file" | cut -d: -f2`
        if echo "$TYPE" | grep -q '(with BOM)';
        then
                echo "# $file already has BOM, skipping." 1>&2
        else
                ( mv ${file} ${file}~ && uconv -f utf-8 -t utf-8 --add-signature < "${file}~" > "${file}" ) || ( echo Error processing "$file" 1>&2 ; exit 1)
        fi
done
于 2013-12-20T08:12:27.397 回答