2012-08-12 3 views
1

내가 다음 줄에없는 str_replace을하려고 : 난 그냥 이렇게함으로써 과거에 그것을 할 수있었습니다않는 str_replace이 문자 : ö

team 4 -1ööööö57167168 

:

str_replace("ööööö", " ",trim($line)); 

원하는 결과는 team 4 -1 57167168

이어야합니다. 그러나 Codeigniter 응용 프로그램에서이 작업을 수행하려고 했으므로이 코드를 바꾸지 못하고 무엇을 시도해야할지 모르겠습니다.

Codeigniter의 인코딩 설정 문제입니까? 올바르게 대체하려면 어떻게해야합니까?

+0

utf-8 탈출 작업을 사용합니까? 즉,'str_replace ("\ xC3 \ x96", ", trim ($ line)); ' – cegfault

+1

당신은 [utf8 끝까지 가나 요] (http://stackoverflow.com/questions/279170/utf-8) -모든 방법을 통해) ? utf-8로 파일을 저장 했습니까? 이'echo bin2hex ('ööööö');는'c3b6c3b6c3b6c3b6c3b6'을주지 않습니까? – Esailija

+0

@cegfault nope, 작동하지 않는 것 같아요 : ( – Motive

답변

-3

utf8_encode() 및 utf8_decode()를 사용하면 PHP는 UTF8 기본 언어가 아닙니다!

+0

ISO-8859-1에서 유니 코드 문자를 인코딩 할 수 없으므로 이러한 변환 (utf8로만 작업 할 수 있음)이 필요하지 않으므로 99.99 %의 유니 코드 문자가 손실됩니다. 예를 들어, ['utf8_decode ("€ €)''는'?'] (http://codepad.viper-7.com/CisDx3)를 제공하며, 그 물음표 ('?)에서 알 수있는 방법이 없습니다. 원래 문자는'€' – Esailija

1

여기서 멀티 바이트 문자열 기능을 확인하십시오. http://php.net/manual/en/ref.mbstring.php 그리고 특히 mb_str_replace.

참고 ö는 여러 문자 집합으로 표현할 수 있으므로 올바른 문자 집합과 일치하는지 확인하십시오!

+0

FWIW이고, 두 문자열이 모두 utf-8이라면,'str_replace'는 여기서 잘 작동합니다. – Esailija