2013-11-20 2 views
3

preg_replace 및 문자 집합과 관련된 성가신 문제가 있습니다. 나는 한 쌍의 preg_replace을 연속적으로하고있다. 그러나 äöüß과 같은 특수 문자는 preg_replace에 의해 삽입된다. 나는 후속 호출에서 PREG_BAD_UTF8_ERROR을 얻고있다.preg_replace PREG_BAD_UTF8_ERROR

삽입 된 특수 문자가 잘 표시되는 것 외에도 이후의 preg_replace 호출이 중단됩니다. preg_ utf-8 만 있습니까?

preg_replace 텍스트가 MySQL 데이터베이스에서오고 있으며, 대체는 php 파일에서 MySQL의 값으로 만들어집니다. mb_detect_encoding()은 특수 문자로 첫 번째 교체 될 때까지 ASCII라고 말하면 UTF-8을 감지하므로 변경되며 이것이 문제 일 수 있습니다.

귀하의 정보에 대해서는 iso-8859-1 인코딩 (PHP, MySQL, 메타 문자 세트)으로 작업하고 있습니다. 또한 나는 지금 일하는 대체 문자열에 htmlentities 함께 해결 방법이 있습니다.

해결 방법에 대한 아이디어가 있으십니까?

답변

1

찾고있는 것은 아마도 mb_ereg_replace입니다. 멀티 바이트 인코딩을 처리하고 다른 인코딩으로 잘 수행해야합니다. 함께 mb_regex_encoding을 사용해야합니다.