字符编码探测、字符集探测又称为代码页检测是个启发式猜测代表文字的一系列字节的字符编码。其算法通常依据对字节样式的统计分析。这并不是一个万无一失的方法因为它依赖于统计数据——比如有些Windows版本会误把ASCII编码的"Bush hid the facts"当作中文UTF-16LE。
为数不多的能可靠探测的情况之一是探测UTF-8。这是因为UTF-8中有大量的无效字节序列,所以当其他编码方式使用字节中的高位bit时不可能通过UTF-8有效性测试。不幸的是不完善的字符集探测程序不优先进行可靠的UTF-8测试于是把UTF-8定为其他编码。
由于字符集探测的不可靠,所以通常是用属性标签去注明是用何种编码。
例如在HTML文件中使用一个meta
element去标示出编码种类:在HTML5使用
<meta charset="utf-8" />