oracle的dmp文件的第2,第3字节记录了字符集信息
windows环境下我们可以通过winhex来查看,winhex支持4G以上大文件的秒速打开
如果你有java环境,也可以用java来读取dmp文件的字节信息
import java.io.FileInputStream; public class ReadDmpCharsetBytes { public static void main(String[] args) throws Exception { byte[] bytes = new byte[3]; new FileInputStream("F:/xxx.dmp").read(bytes); String bytestr = String.format("%02x",bytes[1]) + String.format("%02x",bytes[2]); System.out.println(bytestr); System.out.println("select nls_charset_name(to_number('" + bytestr + "','xxxx')) from dual"); } }
例如 0345对应的是ZHS16GBK,0369对应的是AL32UTF8
select nls_charset_name(to_number('0354','xxxx')) from dual
如果想偷懒,就直接访问这个https://hexed.it/
看下图操作,读4G的文件字节码也这么快,对应dmp的第二字节是03第三字节是69