Forum: Rails I18n utf8_unicode_ci,

05c3f39db309047f28628a223a757bec?d=identicon&s=25 Hans Marmolin (marmolin)
on 2011-02-13 11:18
(Received via mailing list)
Hej
Jag har en rails applikation som anvnder MYSQL och har definierat
tabellerna enligt
create_table :places, :force => true, :force => true, :options =>
'ENGINE=InnoDB DEFAULT CHARSET=utf8' do |table|

och html filen enligt
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
   <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
   <meta http-equiv="X-UA-Compatible" content="IE=8" />

och databsen i configurationsflen enligt
development:
   adapter: mysql
   encoding: utf8
   database: Disweb_1-development
   username: root
   password:
   host: localhost
   pool: 5
   timeout: 5000


Mina problem r
1. Nr jag anvnder autocomplete och gr
search=request.raw_post.downcase.split('=').second.split('&').first
fr att ta ut skstrngen s fr jag '%c3%b6' liknande tecken fr
Detta tgrdar jag med fljande fix

     def to_uf8(search)
       #- fix to handle utf8 problem when inputting search chrs
        search.gsub!('%c3%b6','')
        search.gsub!('%c3%a4','')
        search.gsub!('%c3%a5','')
        search.gsub!('%c3%96','')
        search.gsub!('%c3%84','')
        search.gsub!('%c3%85','')
        return search
     end

Vilket inte verkar vara rtt vg att g !!!

2. Nr jag sker efter matchningar enligt
['LOWER(name) LIKE ?', '%' + search.downcase + '%' ]
ger search med A samma resultat, dvs  i autocompletefltet matchar
alla namn som har A

3. Nu vet jag inte om det finns samma problem alla gnger jag anvnder
find med  i villkorssatsen ?
I s fall r jag illa ute !

Jag har lst att man ev kan tgrda detta med att
collation=utf8_unicode_c
men var och hur definierar man detta ?

Finns det andra lsningar till mina problem ?

Tacksam fr all hjlp !
4a551074ddba4460f95d011c47190d0e?d=identicon&s=25 Henrik --- (malesca)
on 2011-02-13 11:58
(Received via mailing list)
2011/2/13 Hans Marmolin <hans.marmolin@klockholm.se>:
> Mina problem r
> 1. Nr jag anvnder autocomplete och gr
> search=request.raw_post.downcase.split('=').second.split('&').first
> fr att ta ut skstrngen s fr jag '%c3%b6' liknande tecken fr
> Detta tgrdar jag med fljande fix
>
>  def to_uf8(search)
>   #- fix to handle utf8 problem when inputting search chrs
>    search.gsub!('%c3%b6','')
> Vilket inte verkar vara rtt vg att g !!!

Nej, definitivt inte. raw_post r vl URL-encodad, d.v.s. alla
"konstiga" tecken skrivs med procenttecken och siffror.

Kan du inte anvnda params['search'] eller liknande fr det hr? Det
vrde du vill t finns frmodligen redan omgjort till UTF-8
ngonstans. raw_post verkar ondigt lgniv.

> 2. Nr jag sker efter matchningar enligt
> ['LOWER(name) LIKE ?', '%' + search.downcase + '%' ]
> ger search med A samma resultat, dvs  i autocompletefltet matchar alla

Jag brukar gra typ

  ['name COLLATE utf8_swedish_ci LIKE ?', '%' + search + '%' ]

D blir skningen case-insensitive (ven med /) och skiljer p
t.ex. "a" och "" men inte p t.ex. "a" och "".

> 3. Nu vet jag inte om det finns samma problem alla gnger jag anvnder find
> med  i villkorssatsen ?
> I s fall r jag illa ute !

Skriv tester fr detta s mrker du.
05c3f39db309047f28628a223a757bec?d=identicon&s=25 Hans Marmolin (marmolin)
on 2011-02-13 19:01
(Received via mailing list)
Henrik
Tack fr hjlpen -  skall flja dina rd. D tror jag att problemen
lser sig

Jag har ett annat problem som jag lnge skt svar p men inte kunnat
hitta ngot.
Det gller inte  men best practise s det platsar vl egentligen
inte i denna lista, men ndock - det kan ju vara av visst allmnt
intresse

Jag har ofta flera olika views som anropar samma action i en
controller med olika indata och ibland skall ox olika views renderas
tex en show action som gller en plats kan anropas frn en plats-lista
eller frn ett plats-autocomplet flt, etc i platscontroller viewn men
ven frn en lnk i en annan view, eller frn ett redirect i en annan
action. De olika anropen har olika indata och krver delvis olika
logik och implementation

Resultatet r tjocka controller actions med mnga villkorssatser -
inte vidare snyggt!

Men hur lser rman problemet ?
- villkorsatser i en action men det bryter mot regeln "tunna
controllers"
- flera controllers - men det bryter mot DRY d mycket av koden r
gemensam och man ltt hmnar i tex 5 olika plats-controllers
- flera special-actions men det bryter mot RESTs principer
- designa om s att problemet inte uppstr, men det bryter mot en
Anvndarorienterad design som jag tillmpar dr man utgr ifrn
anvndarnas uppgifter och situation

S min frga r!
Vad r best practise nr det gller detta problem?

Tacksam fr all hjlp
____________________________________________
Hans Marmolin
St: Larsgatan 50, 58224 Linkping, Sweden
Phone: +46708371202









13 feb 2011 kl. 11.56 skrev Henrik Nyh:
F52e87b92cafb1e8c6d155076b56ecff?d=identicon&s=25 "Martin J. Dürst" <duerst@it.aoyama.ac.jp> (Guest)
on 2011-02-14 02:15
(Received via mailing list)
Hello Hans,

Can you please post question and answer (or a summary thereof) in
English, so that the rest of the subscribers can follow the discussion?

[From looking at the code, a function such as *to_utf8* below is
extremely restricted, and there is a high chance that you soon get hit
with a character that's not in your list.]

Regards,    Martin.

On 2011/02/13 19:18, Hans Marmolin wrote:
> <meta http-equiv="X-UA-Compatible" content="IE=8" />
> timeout: 5000
> search.gsub!('%c3%b6','')
> 2. Nr jag sker efter matchningar enligt
>
>
>
>
>
>
>
>

--
#-# Martin J. Drst, Professor, Aoyama Gakuin University
#-# http://www.sw.it.aoyama.ac.jp   mailto:duerst@it.aoyama.ac.jp
05c3f39db309047f28628a223a757bec?d=identicon&s=25 Hans Marmolin (marmolin)
on 2011-02-14 07:05
(Received via mailing list)
Sorry Martin
But I posted it in the wrong group and it has been moved to rails-se
For your information

One problem was that I use request.raw_post to get the search string
and that does no handle
My mistake. Did not really understad how autocomplete worked when I
forst wrote that code
The proposed solution was to use params['search']  instad that should
take care of that

The second problem was about how to search only fr  in an
autocomplete field
and the proposed solution was to use
['name COLLATE utf8_swedish_ci LIKE ?', '%' + search + '%' ]
as search condition

____________________________________________
Hans Marmolin
St: Larsgatan 50, 58224 Linkping, Sweden
Phone: +46708371202









14 feb 2011 kl. 02.14 skrev Martin J. Drst:
A73fe11679ad1f865d835e60596e5c98?d=identicon&s=25 Greek Store (greek21)
on 2014-10-14 18:07
[Alpha Omicron Pi Unique Silver] Which is above? which is below? See
more info at http://greek21.com/images/AOP-P004.jpg
greek21.com
[Alpha Phi Bear Silver Ring]  Bear on the ring? Amazing!
http://greek21.com/images/AP-R004.jpg
This topic is locked and can not be replied to.