FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Klarade millennium-buggen
|
Har tvingats kliva in i MySQL-träsket (hehe) pga val av webhotell och har en liten snabb fråga:
Hur hanterar MySQL exempelvis apostrofer, ansanger etc? (alltså typ é è) Jag undrar då jag vet att folk exempelvis inte söker så ofta med sådana tecken (exempelvis Cafe istället för det riktiga Café). Så, måste jag tvätta bort dessa tecken innan jag lagrar detta, eller klarar en select-sats i MySQL att matcha båda förekomsterna per automatik? Eller hur har ni löst det hela? |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
Det beror på vad du väljer för collation när du lagrar datan helt enkelt, http://dev.mysql.com/doc/mysql/en/charset.html
Det skall fungera att söka direkt, default nuförtiden är dock UTF-8 (iaf på mina servrar), så det är bara att översätta alltihopa till UTF-8 så löser det biffen. Sen så buggar det satan ändå. :) |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Klarade millennium-buggen
|
(Eller ja, UTF-8 blir det kanske av perls API eller nåt, det blir UTF-8 hela tiden iaf, men det gör oftast inte så mycket :)).
|
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Klarade millennium-buggen
|
Så, vad menar ni egentligen... =)
Datat ska vara sökbart i just denna tabell och om jag lagar ordet "Café" så ska det dyka upp om folk söker på "Cafe"... så sker detta per automatik om jag väljer rätt collation eller? |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Klarade millennium-buggen
|
Kod:
mysql> show create table test\G *************************** 1. row *************************** Table: test Create Table: CREATE TABLE `test` ( `id` int(11) NOT NULL auto_increment, `title` varchar(255) default NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM 1 row in set (0.00 sec) Kod:
mysql> insert into test values(7,'café'); Query OK, 1 row affected (0.00 sec) mysql> select * from test where title = 'cafe'; +----+-------+ | id | title | +----+-------+ | 7 | café | +----+-------+ 1 row in set (0.00 sec) mysql> select * from test where title like 'cafe'; +----+-------+ | id | title | +----+-------+ | 7 | café | +----+-------+ 1 row in set (0.00 sec) Kod:
mysql> show variables like '%char%'\G *************************** 1. row *************************** Variable_name: character_set Value: latin1 *************************** 2. row *************************** Variable_name: character_sets Value: latin1 dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5 *************************** 3. row *************************** Variable_name: convert_character_set Value: 3 rows in set (0.00 sec) |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Klarade millennium-buggen
|
Dock: så fort man börjar bli lite seriös med sånt där, är det mycket enklare att använda utf8 och alltid konvertera sina strängar fram och tillbaka - html, mysql, php/perl/applikation stödjer det olika. UTF8 stödjs likadant överallt.
|
||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Klarade millennium-buggen
|
Ok, får tacka för din hjälp. Låter bra det där. =)
|
|||
![]() |
![]() |
Svara |
|
|