찾다

 >  Q&A  >  본문

PHP에서 동일한 문자열이 다르게 인코딩되는 이유는 무엇입니까?

header("Content-type:text/html;charset=utf-8");
$secret1 = "rZa9GneIzd9MNyoTv/Ghpk2V6ZHD0KeQC7t0ymEH7cI=";
$secret2 = 'rZa9GneIzd9MNyoTv/Ghpk2V6ZHD0KeQC7t0ymEH7cI=';
$secret3 = 'rZa9GneIzd9MNyoTv/Ghpk2V6ZHD0KeQC7t0ymEH7cI=';

var_dump(trim($secret1));
echo "<br>";
var_dump(trim($secret2));
echo "<br>";
var_dump($secret3);
echo "<br>";
echo mb_detect_encoding($secret1, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5"));
echo "<br>";
echo mb_detect_encoding($secret2, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5"));
echo "<br>";
echo mb_detect_encoding($secret3, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5"));

인코딩을 감지하면 동일한 문자열이 다른 인코딩을 표시합니다. 무엇이 문제인가요?

20190506123102.png

保哥后院保哥后院2102일 전1027

모든 응답(2)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2019-05-06 16:33:50

    다른 문자 세트에는 다른 인코딩 체계가 있습니다. 현재 UTF8

    입니다.

    회신하다
    0
  • 保哥后院

    Peter-Zhu 선생님, 감사합니다. phpstorm에서 AES를 이용하여 생성한 암호화 코드입니다. 복호화 과정에서 문자열의 길이와 인코딩 방식이 다른 것으로 확인되었습니다. 이제 프로그래밍을 해결하는 과정에서 이러한 문제를 피하는 방법을 알아보세요. 현재 파일에서 BOM 특수 보이지 않는 문자를 사용하여 기능을 지울 수 있습니다. RemoveBom($string) { if (substr($string, 0, 3) == pack("CCC", 0xef, 0xbb, 0xbf)) { return substr($string, 3); } return $string }

    保哥后院 · 2019-05-07 10:28:21
  • 취소회신하다