У меня реальная проблема с правильным акцентом, и я верю, что это может произойти с большинством латинских языков, в моем случае, португальского
У меня есть строка, которая приходит в качестве параметра, и я должен получить первую букву и прописать ее! Это должно быть тривиально в ruby, но вот подвох:
s1 = 'alow'; s1.size #=> 4
s2 = 'álow'; s2.size #=> 5
s1[0,1] #=> "a"
s2[0,1] #=> "\303"
s1[0,1].upcase #=> 'A'
s2[0,1].upcase #=> '\303' !!!
s1[0,1].upcase + s1[1,100] #=> "Alow" OK
s2[0,1].upcase + s2[1,100] #=> "álow" NOT OK
Я бы хотел сделать это универсальным. Любая помощь?
[EDIT]
Я обнаружил, что строки Rails могут быть преобразованы в мультибайты, как показано в классе ../active_support/core_ext/string/multibyte.rb, просто используя:
s2.mb_chars[0,1].upcase.to_s #=> "Á"
Тем не менее, подход @nsdk проще в использовании =)