Недавно я работаю над этой штукой, и я не могу найти никаких вещей, связанных с ASP в Интернете. Если кто -то делает это очень рано, не шутите. Потребовалось много времени, чтобы наконец сделать это;
Принцип: используйте объект потока, чтобы прочитать первые два байта файла, проанализировать и определить кодирование UTF-8, Unicode и ANSI (упрощенная китайская операционная система, то есть GB2312)
Связанная информация:
ANSI: неформатированное определение;
Unicode: первые два байта - это FFFE;
UnicodeBigendian: первые два байта - FEFF;
UTF-8: первые два байта являются EFBB;
Скопируйте код следующим образом: functionCheckCode (Path)
setObjStream = server.createObject ("adodb.stream")
objstream.type = 1
objstream.mode = 3
objstream.open
objstream.position = 0
objstream.loadfromFilePath
bintou = objstream.read (2)
Ifascb (midb (bintou, 1,1)) = & hefandascb (midb (bintou, 2,1)) = & hbbthen
CHECKCODER = "UTF-8"
Elseifascb (midb (bintou, 1,1)) = & hffandascb (midb (bintou, 2,1)) = & hfethen
CheckCode = "Unicode"
Еще
CheckCode = "GB2312"
Эндиф
objstream.close
setobjstream = ничего
конечная функция
Пополнить:
Xie Xiaoyu напомнил, что предыдущий был просто чепухой; Локальное кодирование ANSI определяется каждой страной, и нет фиксированного формата заголовка файлов. В рамках операционной системы на материковом китайском языке он читается GB2312, а в других языковых системах она искажена, поэтому нет необходимости подробно различать эту часть.
Получите кодирование файла, и поток может быть открыт по мере необходимости, и не будет искаженного кода.