Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sonderzeichen in der DB so speichern, dass sie vor Ort korrekt angezeigt werden und trotzdem gleichnamige Bilder gefunden werden

Sehen Sie sich zunächst UTF-8 vollständig an für all die Dinge, die Sie richtig machen müssen, damit Nicht-ASCII-Zeichen in Ihrer App im Allgemeinen funktionieren.

Zweitens ist es … knifflig … Dateien mit Nicht-ASCII-Dateinamen über das Internet bereitzustellen. 1) Sie müssen sicherstellen, dass Sie alle URLs für diese Dateien mit prozentualer Codierung codieren, wie Sie es anscheinend bereits tun. 2) Der Webserver nimmt diese URL, dekodiert sie prozentual in einen Byte-String und bittet dann das zugrunde liegende Betriebssystem/Dateisystem, nach einer Datei mit einem Namen mit diesem String zu suchen. Das ist der knifflige Teil:Sie wissen nicht genau, welche Bytezeichenfolge Ihr Betriebssystem/Dateisystem verwendet, um diese Datei genau darzustellen. Sie müssten das zuerst herausfinden und dann die URL speziell codieren, damit sie genau in die richtige Zeichenfolge decodiert wird.

Und wenn Sie auf einen anderen Server umziehen, insbesondere wenn Sie von Windows zu *NIX oder umgekehrt wechseln, können Sie das noch einmal tun, da diese Systeme die Dinge ganz anders machen.

Kurz gesagt, es ist oft mehr Aufwand als es wert ist, und Sie sollten Ihre Bilder nur mit ASCII-Namen speichern, um all das zu vermeiden. Speziell für Länder wäre es sehr sinnvoll, die zweistelligen Ländercodes für den Bildnamen zu verwenden (z. B. "cz.jpg").