2012-11-03 2 views
0

현재 아포스트로피, 저작권, 예약 기호 등과 같은 일반 텍스트가있는 데이터베이스 유형 웹 사이트에서 작업 중입니다.HTML 용 mySQL 텍스트 인코딩?

데이터베이스는 2000 개의 항목으로 구성되어 있습니다. 인코딩되지 않은 일반 텍스트 기호 및 문자를 인코딩 된 Ex : © 문자로 대체하여 빠르고 안전하게 텍스트를 웹 사이트에서 올바르게 렌더링 할 수있는 방법을 찾고 있습니다. 이 방법은 내 문제를 해결하기 위해 작동하는지 궁금

while($row = mysql_fetch_array($results)){ 
    if (strstr($row['description'], '©'){ 
     //replace with © 
    } 
    if(strstr($row['description'], '\''){ 
      //replace with ' 
    } 
    ....etc... 
    //once correct string is created, use mySQL to 
    // update $row['description'] for this row... 
} 

:

내가 좋아하는 뭔가 생각? 누군가가 나를 안전하게 유도하여이 일을 성취하도록 도울 수 있다면?

답변

3

htmlentities() 방법이 적절한 방법입니다.

PHP 매뉴얼 참조 htmlentities. 당신이 htmlentities()을 사용할 수 있지만 다시 텍스트를 울리는 동안 html_entity_decode()를 사용하는 것을 잊지 마세요

+0

답장을 보내 주셔서 감사합니다. 내 문자열을 가정하면 "johnny 's toys are my mySQL 데이터베이스에 큰가?"입니다. 그래서 htmlentities()를 사용하여 해당 문자열을 HTML로 올바르게 렌더링되는 종류로 변환 할 수 있습니까? 또는 htmlentities를 사용하여 데이터베이스에 문자열을 먼저 저장 한 다음 웹 사이트에서 텍스트를 사용하기 전에 html_entity_decode를 사용해야합니까? – AnchovyLegend

+0

웹 사이트에 표시하는 경우 디코딩하지 마십시오. 브라우저가 처리합니다. 데이터베이스에 삽입 할 때 htmlentities()를 사용하면 저장된 문자열마다 한 번만 수행 할 수 있습니다. db 문자열을 읽은 후에 완전히 할 수 있지만, 사용자가 볼 때마다 서버가이를 수행합니다. 낭비입니다. 답장을 보내 주셔서 감사합니다. – Bgi

2

.. 비슷한 문제를 가진 사람들로

+0

내 문자열을 가정하면 "johnny 's toys are my mySQL 데이터베이스에 큰가?"입니다. 그래서 htmlentities()를 사용하여 해당 문자열을 HTML로 올바르게 렌더링되는 종류로 변환 할 수 있습니까? 또는 htmlentities를 사용하여 데이터베이스에 문자열을 먼저 저장 한 다음 웹 사이트에서 텍스트를 사용하기 전에 html_entity_decode를 사용해야합니까? – AnchovyLegend

+0

그 텍스트를 직접 echoing하면 "johnny 's toys are great ©"가됩니다 .. –

+0

DB에 저장되면 "johnny 's toys are great ©"처럼 보이지만 사이트의 텍스트를 반향 시키려고하면 일부 gibrish DB에 저장된대로 렌더링하는 대신 특수 문자 대신 특수 문자를 사용합니다 ... – AnchovyLegend

0

, 나는이 내 문제에 대한 해결책 것을 발견했다 :

내 자동 렌더링 문제를 해결

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 

내 HTML head 태그에 위의 코드를 추가 : 콘텐츠 형식은 UTF-8 대신 아래 하나로 설정했다.

+0

분명히 문제를 해결했지만 데이터베이스에 특수 문자를 저장하지 않는 것이 좋습니다. –