문제

일반적으로 나는 이것을 할 것입니다.

$str = preg_replace('#(\d+)#', ' $1 ', $str);

그것이 UTF-8이 될 것이라는 것을 알면 패턴에 소문자 "u"수정자를 추가 할 것이고 나는 좋을 것이라고 생각합니다. 그러나 UTF-8이 2x를 복용 한 보고서로 인해 기본 문자 세트가 사용 된 경우보다 저장 공간이 3 배의 저장 공간을 사용하기 때문에 Application을 UTF-8로 제한하지 않으려 고합니다.

따라서 나는 내가 좋아하는 preg_ 기능을 피하려고 노력하고 있습니다.

대부분의 것들은 지금까지 상당히 단순했지만, 나는 " d"와 같은 preg_에서 일반적으로 캐릭터 클래스를 사용하는 대체품에 약간 붙어 있습니다.

도움이 되었습니까?

해결책

스토리지 래퍼를 구현하십시오 mb_convert_encoding 따라서 내부적으로 UTF-8을 조작하면됩니다.

(아직도 당신이해야한다고 생각합니다 UTF-8이 필요합니다 그리고 모두에게 많은 어려움을 낳습니다.)

다른 팁

UTF-8 인코딩은 바이트 값이 127 이하 인 인코딩 된 출력의 모든 것이 항상 바이트 값과 다중 바이트 시퀀스의 일부와 일치하는 ASCII 문자 일이라고 생각합니다. 따라서이 상황에서 인코딩이 ASCII 인 척하고 문제를 일으키지 않을 수 있습니다 (공백과 숫자가 모두 ASCII이므로).

설명을 참조하십시오 http://en.wikipedia.org/wiki/utf-8 여기서 멀티 바이트 시퀀스의 모든 바이트가 가장 중요한 비트 세트가 있음을 보여줍니다 (예 : 모두 127).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top