2011-11-03 2 views
0

복잡한 문자열 조작으로 특정 클래스를 만들고 있습니다.PHP : 문자열 조작시 따옴표 처리, 이스케이프 처리 등

콘텐츠는 '"과 잘 작동합니다. 그러나 텍스트 중 하나는 과 같은 각도에서 이상한 따옴표가 있고 내 코드에는 실제 따옴표가 아닌 â€으로 표시됩니다. 내 코드가 여러 번 등장하기 때문에 코드가 손상되어서는 안됩니다.

누군가가 왜 이런 일이 발생했는지 설명해주십시오. 어떻게 해결할 수 있습니까?

+0

어떻게 텍스트를 코드에 넣었습니까? 다른 곳에서 붙여 넣었습니까? 이 문제는 텍스트 인코딩과 관련이 있습니다 –

+1

잘못된 문자 집합 변환의 부작용입니다 (예 : iso-8859 컨테이너에 UTF-8 텍스트 채우기). –

+0

@ Nicolás 예, 제출 양식에 붙여 넣습니다. – mgPePe

답변

1

중 하나를 사용 UTF-8 인코딩으로 변경하거나 모든 비 맞는 문자를 대체 할 수있다.
이 따옴표하지만 더 spechial 의미가 없다, 당신이 그들을 무시할 수 있습니다.

그것은 발견로 의견에서 mb_substr() 대신 substr을 사용하는 것이 문제였습니다. 후자의 경우 문제가 해결되었습니다.

+0

그럼 utf-8은 어떻게 사용합니까? 내 데이터베이스는 UTF-8이고 헤더는 UTF이지만 그 전에는 PHP 조작에 실패했기 때문에 결코 그 중 하나에 도달하지 못했습니다. – mgPePe

+0

utf 설정에 실수가 있습니다. 그렇지 않으면이 따옴표를 표시 할 때 아무런 문제가 없습니다 –

+0

내 php.ini 파일에 있습니까? 나는 지금 전혀 모릅니다. – mgPePe

0

메신저 꽤이 헤더에 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />을 추가하여 해결할 수 있습니다. 이는 "."을 읽을 수 없기 때문에 발생합니다. 아니면 그냥 일반 "

+1

이 대리 문자 "헤더"는 브라우저에서 무시됩니다. 실제 HTTP 헤더를 사용하는 법을 배웁니다. –

관련 문제