2013-08-11 2 views
1

실제로 데이터베이스에 제목이 인"대학에 수락 했으니 지금 결정 : ... "입니다.DB에서 가져올 때 " ''와 같은 특수 문자를 처리하는 방법

그래서 사용자가 "수락했습니다 ...."라고 입력하면 특수 문자 '으로 인해 위와 일치하지 않습니다.

이러한 문자 유형에 대해 수행해야 할 작업은 다음과 같습니다.

미리 감사드립니다. :)

+0

동일하면 일치해야합니다. 아마 그들은 같지 않을 것입니다. 두 문자열의'inspect' 결과를 보여줘야합니다. – sawa

+0

db 항목에 특수한 ** 아포스트로피 '기호 **가 들어 있기 때문에 그것들은 다릅니다. 그러나 일반 사용자는 특별한 아포스트로피를 입력 할 수 없습니다. 키보드 ** 따옴표 '**를 입력하면됩니다. 둘 다 다릅니다. 문자 인코딩이 문제입니다. 그렇다면이 문제를 해결하기 위해 무엇을해야합니까? 데이터베이스의 항목을 변경해야합니까? 그렇다면 어떻게해야합니까? 그러한 기록이 여러 개있을 수 있습니다. –

+1

비정상적인 기호가있는 경우 데이터베이스에서 정규화하는 것이 더 좋습니다. 데이터베이스에있는 그대로 저장하지 마십시오. ASCII 문자로 변환 한 후 저장하십시오. – sawa

답변

0

그래서 모든 장소에서 아포스트로피를 사용하는 대신 따옴표가있는 레코드가 없도록하려면 gsub를 통해 올바른 쿼리가 포함되도록 수정해야합니다. 인용문.

진정하고 멋지고 우아한 솔루션은 데이터베이스 서버에 데이터 정렬을 추가하는 것입니다. 데이터 정렬은 SELECT 'ä' LIKE 'a'에 대해 데이터베이스가 1을 반환하게합니다. 유감스럽게도 utf8_general_ci 또는 utf8_unicode_ci (MySQL에 내장 된 데이터 정렬)는 따옴표와 함께 아포스트로피를 접을 수 없습니다. 그래서 새 것을 추가해야합니다. 이것이 MySQL에서 어떻게 성취되는지는 다음과 같습니다 : http://dev.mysql.com/doc/refman/5.0/en/adding-collation.html

관련 문제