2013-03-14 2 views
0

나는 고객 데이터베이스와 테이블 (cache_cust) 중 하나에서 고객의 회사 이름을 검색하고 있습니다. 저는 'company_name'을 Mr € 2, Mr € 1, £ land 등의 형식으로 저장하고 있습니다. 이 통화 기호는 저장 중입니다. 정확하게 내가 'COMPANY_NAME'값을 검색하려고 database.BUT에서 그들은 다음과 같이 나에게 문자를 보여PHP를 사용하여 데이터베이스에서 통화 기호를 검색하는 방법은 무엇입니까?

For example : for " Mr €2 " ,it shows " Mr €2 " . 

를이 데이터베이스에 저장 될 때 내가 어떻게 수있는 PHP 페이지에 내 데이터를 표시 할 수 있습니까? 내 웹 페이지에 나타나는 이런 종류의 기호를 피할 수 있습니까? 이러한 값은 database.I에서 htmlspecialcharacters 및 htmlentities 시도했지만 note.Please 도움이되지 않습니다. 고마워요

AN 업데이트 : 'company_name'텍스트 상자 값을 다음 페이지에 게시하고 print ($ _ POST [ 'company_name]);를 사용하여 검색하려고 시도합니다. , 그것은 아직 기호를 표시하지 않으며 특수 문자를 포함하지 않습니다.

+0

페이지 인코딩은 UTF-8이어야합니다. – djjjuk

+0

@ djjjuk.Thanks.But이 문제를 해결하기 위해 내 페이지 인코딩을 UTF-8로 확인하거나 설정할 수 있습니까? – BiL

답변

0

company_name 필드의 문자 집합/데이터 정렬은 무엇입니까?

기본 문자 집합이 latin1 인 것 같습니다. 이 경우 UTF-8 utf8_unicode_ci으로 설정해야합니다.

열이 UTF8이 아닌 경우에도주의하십시오. 이미 저장 한 특수 문자는 다중 바이트 형식에서 1 바이트 표현으로 변환되므로 다시 저장해야합니다. 이 상황에있는 경우 this chart을 사용하여 문자열 바꾸기를 수행 할 수 있습니다.

+0

@Dab J.Thanks하지만 문제는 데이터베이스에 없습니다. 문제는 기호를 잘못 표시하는 PHP 웹 페이지와 관련된 것입니다. 데이터베이스의 값은 올바르게 저장됩니다. 그러나 웹 페이지에는 올바르게 표시되지 않습니다. – BiL

+0

죄송합니다. 그 비트를 놓친 적이 있습니다 - 회사 정보를 선택하기 전에'SET NAMES utf8'을 (를) 실행 해 보셨습니까? – cloakedninjas

+0

@Dab J.Yes.i가 내 메타 태그에 설정했습니다. BiL

1

페이지가 어떻게 렌더링됩니까? 정확하게 문제를 확인했지만 완성도를 위해 당신은 또한 교차 캐릭터 세트의이 종류를 피하기 위해 출력에 HTML 특수 코드를 사용하는 것이 좋습니다

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+0

감사합니다. 이미 설정되어 있습니다 : BiL

0

다른 답변 : 만약 그렇다면, UTF-8로 콘텐츠 형식을 넣어 시도 문제가 처음이다.

예 :

£ &pound; 
€ &euro; 
¥ &yen; 

etc. 
+0

그러나 데이터베이스에서 가치를 얻고 있습니다! 나는 그들을 하드 코딩 할 수 없다 – BiL

+0

@BiL ['utf8_encode' 매뉴얼] (http://php.net/manual/en/function.utf8-encode.php)을 보았습니까? – Emissary

+0

@ Emisary.The 문제는 기호가 데이터베이스에 올바르게 저장되어 있지만 POST 방법을 사용해도 표시되지 않는다는 것입니다. 통화 기호없이 $ _POST [ 'company_name']을 사용하려고했습니다! – BiL