utf8_unicode_ci 형식의 TEXT 열이있는 테이블이 있습니다.php utf8 텍스트가 올바르게 렌더링되지 않습니다.
나는 또한이 필드에 다중 언어 텍스트를 넣을 수있는 양식이 있습니다. 나는 길이가 50 문자를 표시하려면이 열에서 각 텍스트를 가져올 때
그래서 난 다음을 수행하십시오
$text = $rows["text"];
$text = mb_substr($text, 0, 50);
$text = htmlentities($text, ENT_COMPAT, 'UTF-8');
이 비 영어 문자를 렌더링하는 데 실패하고 난 mb_substr를 넣어 경우, 아무것도 보여 나던 아래에 htmlentities 기능이 나타나지만 텍스트를 자르고 일부 & 문자를 표시합니다; & 다른;
이 문제를 해결할 수있는 방법은 없나요?
출력은 정확히 * 어떤 모양입니까? 왜 당신은 처음에'htmlentities()'를 사용하고 있습니까? –
xss 코드 때문에 htmlentities를 사용해야합니다. 예를 들어, "σ σ σ σ σ σ σ σ σ σ σ σ σ σ σ σ σ σ σ σ σ σ σ"와 같이 입력하면 다음과 같은 샘플 텍스트가 나타납니다. htmlentities를 제거하면 다음과 같이 표시됩니다. substr을 제거하고 htmlentities를 그대로두면 제대로 작동하지만 50 자로 제한해야합니다. – fxuser
(영문 일 수 있음)'htmlspecialchars()'는 XSS를 막기 위해 모든 문자를 엔티티 –