현재 작업중인 앱에 검색 기능이 있습니다. 예를 들어 특정 문자열을 검색 할 때. 테이블 행의 특정 열과 일치하는 "4 for £ 3"은 백엔드 DB가 특정 행에 대한 열의 값으로 올바르게 저장했지만 검색 결과에 아무런 결과도 반환하지 않습니다.파운드 기호가 포함 된 문자열을 찾는 경우 검색이 부적절한 경우
로그는 검색 문자열을 "4 for £ 3"으로 전달합니다. 추가 문자 'Â'가 내 검색 문자열 (search_str)에 추가되는 위치는 확실하지 않습니다. 나는 백엔드에서 정확한 문자열을 검색하려면 다음 해결 방법을 시도했지만 작동하지 않는 것 -
해결 방법 - 또한
params[:search_str].include?('Â') ? params[:search_str].gsub!('£', '£') :
, 단지 IRB에서 같은 일을하려고 말을 추가 정보를 원하시면
irb(main):020:0> a = "2 for £7"
=> "2 for \302\2437"
irb(main):021:0>
irb(main):013:0> a.include?('Â')
=> true
레일에서 실행될 때 검색 버튼 뷰 파일에서 클릭에서 작업을 호출 할 때 false를 반환 같은 명령 -, 나는 다음과 같은 얻을. 이 비정상적인 동작이 왜 Rails가 "7"에 대해 2를 "7에 대해 2"로 취급하고 "302에 대해 2"가 아닌 2437을 처리하기 때문에 그런 것일까?
'\ 302'와 '\ 243'이 (가) this page에 주어진 8 진수 상당임을 확인했습니다. 나도 similar question를 보았다. 그러나 그것은 나의 경우를 돕는 것처럼 보이지 않았다.
내가이 문제를 어떻게 극복 할 수 있는지에 대한 제안은 정말 도움이 될 것입니다.
[업데이트 질문]
database.yml을이 - show variables like 'char%';
해서 character_set_client의 UTF8
character_set_connection을의 UTF8
-development:
adapter: mysql
database: db_name
username:
password:
host: localhost
dev-rails:
adapter: mysql
database:
username:
password:
host:
port:
dev-delayedjobs:
development
test:
adapter: mysql
database: db_name
username:
password:
host:
port:
결과 쿼리의 일부로 반환
character_set_database 라틴
character_set_filesystem 진
character_set_results의 UTF8
character_set_server 라틴
character_set_system의 UTF8
character_sets_dir/응용 프로그램 (.. 어떤 경로 ..)
감사합니다.
당신은 DB가 값을 올바르게 저장하고 있지만 문제는 검색 중임을 말했습니다. 'get'은 어떨까요? ('select * from MY_DB') - 정확한 값입니까? – dax
장난 꾸러기 검색! – Santhosh
예를 들어 mysql 워크 벤치를 통해 my_db에서 sel *을 실행하는 경우 올바른 값을 반환합니다. 그러나 브라우저 웹 페이지에 표시 할 때 한 페이지에서 파운드 기호가 적절하게 표시되지만 다른 페이지에서는 파운드 기호가 표시되는 대신 기호가 표시됩니다. 파운드 기호가 올바르게 표시되는 곳의 페이지 소스 코드는'