2017-12-31 81 views
0
<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li> 

데이터베이스에 원시 HTML 문자열이 많이 있습니다. 모든 텍스트에는 이상한 문자가 있습니다. 어떻게 다시 데이터베이스에 저장하기 위해 일반 텍스트로 변환 할 수 있습니다.문자열을 "(ISO-8859-1) 문자를 일반 (UTF-8) 문자로 변환하는 방법?

$final = '<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li>'; 
$final = utf8_encode($final); 

$final = htmlspecialchars_decode($final); 

$final = html_entity_decode($final, ENT_QUOTES, "UTF-8"); 

$final = utf8_decode($final); 

echo $final; 

위 코드를 시도했지만 웹 브라우저에서는 올바르게 표시되지만 여전히 이상한 문자는 데이터베이스에 저장합니다.

데이터베이스의 캐릭터 세트는 UTF-8

답변

0
$final = '<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li>'; 

$final = str_replace("Â", "", $final); 
$final = str_replace("’", "'", $final); 
$final = str_replace("“", '"', $final); 
$final = str_replace('–', '-', $final); 
$final = str_replace('â€', '"', $final); 

지난 데이터의 경우 이상한 문자를 UTF-8 문자로 바꿨습니다.

미래의 데이터를 위해, 나는 php, html 및 데이터베이스 연결에서 utf8에 대한 charset을 만들었습니다.

2

“은 "글자 깨짐"입니다. non-ascii 따옴표를 피하려고 시도 할 수 있지만 문제가 다시 발생하는 것을 지연시킬 수 있습니다.

테이블과 연결에 utf8mb4을 사용해야합니다. Mojibake의 가능한 원인에 대해서는 this을 참조하십시오.

관련 문제