2014-07-24 2 views
2

특수 폴란드 문자가 포함 된 문자열을 정렬하는 데 문제가 있습니다. 내 코드는 다음과 같습니다폴란드어 문자로 배열 배열

["Łotwa", "Luksemburg", "Anglia"].sort_by{|x| ActiveSupport::Inflector.transliterate(x)} 

이 코드는 나에게 다음과 같은 결과 제공 :

["Anglia", "Łotwa", "Luksemburg"] 

을하지만, 그것은 다음과 같아야합니다

["Anglia", "Luksemburg", "Łotwa"] 

나는이 보석을 사용하려고 :

https://github.com/grosser/sort_alphabetical 
https://github.com/jarib/ffi-icu 

이 문제는 해결되지 않습니다. 문제는 특수 폴란드 문자 "Ł"에 의해 발생합니다.

+0

이 정렬을하고 무엇을 위치에 따라, 하나의 접근 방법은 루비에서 그 일을 대신 DB의 데이터 정렬 지원을 사용할 수 있습니다. – matt

+0

질문을 좀 더 명확히해야합니다. 예를 들어''Ł ''이''L ''과''M ''사이에 있어야 함을 다른 사람들에게 알리십시오. 그렇지 않으면이 질문은 오해의 소지가 있습니다. –

답변

5

당신은 string_case_pl 보석 사용할 수 있습니다

require 'string_cmp_pl' 
%w(Anglia Litwa Zanzibar Łotwa).sort 
# => ["Anglia", "Litwa", "Łotwa", "Zanzibar"]