sql >> Databasteknik >  >> RDS >> Mysql

Lagring av specialtecken i DB på ett sådant sätt att de visas korrekt på plats och fortfarande hittar en bild med samma namn

Först och främst, se UTF-8 hela vägen igenom för alla saker du behöver göra korrekt för att få icke-ASCII-tecken att fungera i din app i allmänhet.

För det andra är det ... knepigt ... att visa filer med icke-ASCII-filnamn över webben. 1) Du måste se till att du kodar alla webbadresser för dessa filer med procentkodning, som du redan verkar göra. 2) Webbservern tar den URL-adressen, procentkodar den till en bytesträng och ber sedan det underliggande operativsystemet/filsystemet att leta efter en fil med ett namn med den strängen. Det här är den knepiga delen:du vet inte exakt vilken bytesträng ditt operativsystem/filsystem använder för att representera den filen exakt. Du måste ta reda på det först och sedan koda webbadressen specifikt så att den avkodar exakt till rätt sträng.

Och när du flyttar till en annan server, särskilt om du flyttar från Windows till *NIX eller vice versa, kan du göra det om igen eftersom dessa system gör saker väldigt olika.

I ett nötskal är det ofta mer krångel än det är värt, och du bör lagra dina bilder med endast ASCII-namn för att undvika allt detta. Specifikt för länder skulle det vara mycket meningsfullt att använda landskoderna med två tecken för bildnamnet (t.ex. "cz.jpg").




  1. Dubbel kolon (::) notation i SQL

  2. Operand typ clash:varchar är inkompatibelt med varchar(50) som försöker infoga i krypterad databas

  3. Använder php filter_var med mysql_real_escape_string

  4. Anslut till Oracle DB från Spring-jdbc med Oracle Wallet-autentisering