GB2312のHTMLソースを直接にGBK/GB18030に変換します
$str = preg_replace('/gb2312/', 'GB18030', [gb2312のHTMLソード]); // ヘッダーのcharsetをGB18030への変換
$str = mb_convert_encoding( $str, 'GB18030' ); // HTMLソースをGB18030に変換
$doc = new DOMDocument();
$doc->loadHTML( $str );
echo $doc->saveHTML(); // 正常に日本語が表示され