2011-11-25 5 views
4

데이터베이스에 UTF8을 저장하고 싶습니다. 유니 코드 힌디어로 데이터를 가지고 있고 PHP로 HTML 데이터베이스로 변환 한 후 MySQL 데이터베이스에 저장하려고합니다. 누군가가 글 머리 기호 (•)를 텍스트 상자에 입력한다고 가정 해 봅시다. 해당 데이터를 저장할 때 •으로 변환해야합니다.데이터베이스에 utf8 데이터 저장 중

데이터가 있다고 가정하면 मेरा भारत महान 데이터를 html 문자로 변환하여 데이터베이스에 저장하고 싶습니다. 어떻게해야합니까? 나는 htmlentities 기능을 사용하려고했지만 만족스럽게 나를 위해 작동하지 않습니다.

+10

왜 엔티티로 변환 할 수 있습니까? UTF-8을 사용하는 것이 잘못된 이유는 무엇입니까? – Quentin

+4

"만족스럽지 않음"을 정의하십시오. 또한 UTF-8의 문제점은 무엇입니까? – deceze

+0

'데이터베이스가 그대로 저장되어 있습니다.이 형식을 다소 변환하려고합니다. '•' –

답변

0

htmlentities이 캐릭터 세트 매개 변수가, 시도 : htmlentities($text, ENT_COMPAT, "UTF-8")

+0

텍스트 상자에 넣은 것과 같은 형식으로 저장합니다. –

+0

유니 코드를 의미합니다 .... –

3

• thingies는 HTML 엔티티라고합니다. 그러나

$string = 'मेरा भारत महान'; 
$encoding = 'UTF-8'; 

$convmap = array(0, 0xffff, 0, 0xffff); 
$encoded = mb_encode_numericentity($string, $convmap, $encoding); 

echo $encoded; मेरा भारत महान 

: 그것은 Multibyte String 확장 (Demo)의 일부, mb_encode_numericentityDocs : PHP에서 다음을 만들 수있는 기능이 있습니다 당신은 문자열의 인코딩을 알 필요가있다. 이 경우에는 UTF-8을 선택 했으므로 함수의 $encoding 매개 변수와 $convmap 배열을 수정해야합니다.

그러나 데이터베이스에 저장하지 마십시오. 데이터베이스의 데이터를 검색 한 후 그대로 저장하고 출력 인코딩 을 변환하십시오.

비슷한 질문 : Convert (doublebyte) string to Hex

+2

이 작업을 수행하는 것은 일반적으로 매우 어리석은 아이디어입니다. (나는 당신의 답을 의미하지는 않지만, 다중 바이트 문자를 HTML 엔터티로 변환한다는 아이디어 - 내 내기는 OP가 핵심에 고쳐 져야하는 문자 세트 문제를 가지고있다.) –

+0

예, 텍스트를 HTML 엔터티와 함께 ​​데이터베이스에 저장하면 안됩니다. 그것은 너무 많이 인코딩 된 것입니다. – hakre

+0

와트는이 convmap합니까합니까? 코드를 설명하는 것을 조금 도와 주시겠습니까 ... –

관련 문제