Frage

Ich habe Joel Artikel über Unicode lesen, und ich fühle, dass ich bei dest ein grundlegendes Verständnis der Internationalisierung aus einem Zeichensatz Perspektive. Zusätzlich zu lesen diese Frage , habe ich auch einige meiner eigenen Forschung zur Internationalisierung getan in Bezug Überlegungen zu entwerfen, aber ich kann nicht umhin, den Verdacht, dass es viel mehr ist da draußen, dass ich einfach nicht wissen oder nicht wissen, zu fragen.

Einige der Dinge, die ich gelernt habe:

  • Einige Sprachen gelesen von rechts nach links anstelle von links nach rechts.
  • Kalender, Datum, Uhrzeit, Währung und Nummern werden angezeigt anders von Sprache zu Sprache.
  • Das Design sollte flexibel genug sein, um zu Platz für viel mehr Text, weil Einige Sprachen sind weit ausführlicher als andere.
  • Nehmen Sie keine Symbole oder Farben für gewährt, wenn es um ihre semantische Bedeutung, da diese variieren können von Kultur zu Kultur.
  • Geographische Nomenklatur variiert von Sprache zu Sprache.

Wo bin ich unter:

  • Mein Design ist flexibel genug, um Platz für viel mehr Text.
  • I jeweils automatisch übersetzen string, einschließlich Fehlermeldungen und Hilfe Dialoge.
  • Ich bin gekommen, noch nicht zu einem Punkt, wo Ich habe benötigt Zeiteinheiten angezeigt werden, Währung oder Zahlen, aber ich werde sein dort kurz und müssen entwickelt eine Lösung.
  • Ich bin mit dem UTF-8-Zeichensatz auf der ganzen Linie.
  • Meine Menüs und verschiedene Listen in der Anwendung sortiert alphabetisch für jede Sprache für das Lesen zu vereinfachen.
  • Ich habe einen Tag Parser, extrahiert Tags durch Stoppwörter Ausfiltern. Das Stoppwörter Liste ist sprachspezifisch und können ausgelagert werden.

Was ich möchte mehr wissen über:

  • Ich entwickle eine herunterladbare PHP-Web-Anwendung, so dass jede spezifische Beratung in Bezug auf PHP würde sehr geschätzt werden. Ich habe mein eigenes Framework entwickelt und bin nicht daran interessiert, sich mit der anderen Frameworks zu diesem Zeitpunkt.
  • Ich weiß sehr wenig über nicht-westliche Sprachen. Gibt es spezifische Überlegungen, die ergriffen werden müssen, um zu berücksichtigen, dass ich nicht erwähnt habe über? Auch, wie Sie PHP-Array Sortierfunktionen behandeln nicht-westliche Zeichen?
  • Gibt es spezifische gotchas dass Sie haben in der Praxis erfahren? Ich bin auf der Suche sowohl in Bezug auf die GUI und den Anwendungscode selbst.
  • Jede spezifische Beratung für die Arbeit mit Datum und Uhrzeit angezeigt? Gibt es eine Aufteilung nach Region oder Sprache?
  • Ich habe eine Menge von Projekten und Websites gesehen lassen ihre Gemeinden bieten Übersetzung für ihre Anwendungen und Inhalt. Haben Sie diese empfehlen und was sind einige gute Strategien für sicherzustellen, dass Sie einen guten haben Übersetzung?
  • Diese Frage ist im Grunde das Ausmaß von dem, was ich weiß, über Internationalisierung. Was nicht ich weiß, dass ich nicht weiß, dass ich sollte Blick in weiter?

Bearbeiten :. Ich die Prämie hinzugefügt, weil ich mehr reale Beispiele aus Erfahrung haben möchte

War es hilfreich?

Lösung

Unser Spiel Gemsweeper hat zu 8 verschiedenen Sprachen übersetzt. Einige Dinge, die ich in diesem Prozess gelernt:

  • Wenn der Übersetzer einzelne Sätze gegeben zu übersetzen, stellen Sie sicher, dass er über den Kontext weiß, dass jeder Satz in verwendet wird. Sonst könnte er eine mögliche Übersetzung zur Verfügung stellen, aber nicht die, du meintest. Tools wie übersetzen Babelfish, ohne den Kontext zu verstehen, weshalb das Ergebnis in der Regel so schlecht ist. Versuchen Sie einfach, alle nicht-trivialen Text vom Englischen ins Deutsche und zurück übersetzen und Sie werden sehen, was ich meine.

  • Die Sätze, die nicht in verschiedene Teile aus dem gleichen Grunde gebrochen werden muss übersetzt werden sollen. Das ist, weil Sie den Kontext beibehalten müssen (siehe vorigen Punkt) und weil einige Sprachen haben könnten die Variablen, die am Anfang oder am Ende des Satzes. Verwenden Sie Platzhalter anstatt zu brechen, den Satz auf. Zum Beispiel, anstelle von

  

„Dies ist der erste Schritt“ „unserer 15-Schritt   Tutorial“

Schreiben Sie so etwas wie:

  

"Dies ist der erste Schritt% 1 unserer 15-Schritt-Tutorial"

und die Platzhalter programmatisch ersetzen.

  • Erwarten nicht der Übersetzer lustig oder kreativ zu sein. Er ist in der Regel nicht genug motiviert, es zu tun, wenn Sie die bestimmten Textstellen benennen und ihn extra bezahlen. Zum Beispiel, wenn Sie Ihre Sprachvermögen haben und Wortwitze in, sagen Sie den Übersetzer in einer Randnotiz nicht zu versuchen, sie zu übersetzen, aber sie auszulassen oder ersetzen sie durch einen düsteren Satz statt. Andernfalls wird der Übersetzer wahrscheinlich den Witz Wort für Wort übersetzen, die in der Regel in völligem Unsinn führt. In unserem Fall hatten wir einen Übersetzer und einen Witz Schriftsteller für die kritischsten Übersetzung (Englisch).

  • Versuchen Sie, einen Übersetzer zu finden, die erste Sprache ist, ist die Sprache, die er Ihre Software, nicht den anderen Weg geht rund zu übersetzen. Sonst wird er wahrscheinlich einen Text zu schreiben, der sein könnte korrigieren, aber klingt seltsam oder altmodisch Muttersprachler. Außerdem sollte er in dem Land leben Sie mit Ihrer Übersetzung zielen. Zum Beispiel ein deutschsprachiger Mann aus der Schweiz wäre keine gute Wahl für eine deutsche Übersetzung sein.

  • Wenn jeder möglichen, hat eine Ihres öffentlichen Beta-Test-Benutzer, die die besondere Übersetzung überprüfen übersetzt Vermögenswerte und die fertiggestellte Software versteht. Wir haben einige sehr gute und sehr schlechte Übersetzungen haben, abhängig von der Person, die ihnen zur Verfügung gestellt. Nach einigen unserer Mitglieder war die schwedische Übersetzung insgesamt Kauderwelsch, aber es war zu spät, etwas dagegen zu tun.

  • Beachten Sie, dass für jede aktualisierte Version mit neuen Features, werden Sie Ihre Sprachen Vermögenswerte übersetzt. haben müssen Dies kann einigen ernsthaften Kopf erstellen.

  • Seien Sie sich bewusst, dass die Endbenutzer-Tech-Unterstützung ihre Sprache erwarten, zu sprechen, wenn Sie Ihre Software übersetzt wird. Wieder einmal wird Babelfish höchstwahrscheinlich nicht tun.

Bearbeiten - Einige weitere Punkte

  • zwischen Lokalisierungen so einfach wie möglich wechseln. In Gemsweeper haben wir einen Hotkey zwischen verschiedenen Sprachen zu wechseln. Es macht Tests viel einfacher.

  • Wenn Sie exotische Schriften verwenden wollen, stellen Sie sicher, dass diese Sonderzeichen enthalten. Die Schriften wir für Gemsweeper wählten für englischen Text waren in Ordnung, aber wir hatten schon einige Zeichen hinzufügen von Hand, die gibt es nur in Deutsch, Französisch, portugiesischer, schwedischer, ...

  • Ihre eigene Lokalisierung Rahmen nicht codieren. Sie sind wahrscheinlich viel besser dran mit einem Open-Source-Frameworkwie Gettext . Gettext unterstützt Funktionen wie Variablen innerhalb von Sätzen oder Pluralisierung und ist felsenfest. Lokalisierte Ressourcen zusammengestellt, so dass niemand mit ihnen manipulieren. Darüber hinaus können Sie Tools wie Poedit für Ihre Dateien übersetzen / Überprüfung jemand anderes Übersetzung und sicherstellen, dass alle Strings richtig übersetzt sind und nach wie vor für den Fall auf dem neuesten Stand Sie die zugrunde liegende Quellcode ändern. Ich habe versucht, meine eigenen beiden Rollen und mit Gettext statt und ich muß sagen, dass Gettext Plus PoEdit Weise überlegen war.

Edits - noch mehr Punkte

  • Verstehen Sie, dass verschiedene Kulturen verschiedene Arten von Zahlen- und Datumsformate haben. Nummerierungsschemata sind nicht nur unterschiedlich pro Kultur, sondern auch pro Zweck innerhalb dieser Kultur. In EN-US haben Sie vielleicht eine Nummer Format '-1234'; ‚-1234‘ oder (1.234), je nachdem, was der Zweck der Zahl ist. Verstehen andere Kulturen das gleiche tun.

  • Wissen Sie, wo Sie Ihre Globalisierung Informationen aus bekommen. Z. B. Windows verfügt über Einstellungen für Current, UICulture und InvariantCulture. Verstehen Sie, was jeder bedeutet und wie es mit dem System interagiert (sie sind nicht so offensichtlich, wie Sie vielleicht denken).

  • Wenn Sie ostasiatischen übersetzen tun werden, wirklich Ihre Hausaufgaben machen. ostasiatische Sprachen haben ziemlich viele Unterschiede von Sprachen hier. Zusätzlich mehrere Alphabete aufweist, die gleichzeitig verwendet werden, können sie verschiedene Layout-Systemen (Top-down) oder gitterbasierten verwenden. Auch Zahlen in ostasiatischen Sprachen können sehr unterschiedlich sein. Im en-US ändern Sie nur Systeme für eingeschränkte Bedingungen (zum Beispiel 1 im Vergleich zu 1.) gibt es zusätzliche numerische Überlegungen neben nur Komma und Punkt.

Andere Tipps

  
      
  • Meine Menüs und verschiedene Listen in der   Anwendung sind alphabetisch sortiert   für jede Sprache für das Lesen zu vereinfachen.
  •   

Listen sollen sortiert werden, Menüs sollten nicht. bedenken Sie, dass ein bestimmte Benutzer möchte Ihre Anwendung in mehr als eine Sprache verwenden, sollte er noch überall an der gleichen Stelle finden.

das gleiche mit Verknüpfungen, wenn Sie irgendwelche. nicht übersetzen sie

Denken Sie auch daran, dass die Internationalisierung und Übersetzung sind zwei sehr verschiedene Dinge, verwalten sie getrennt.

Wenn wir uns auf die i18n / l10n Fragen von Dreamfall und Age of Conan gearbeitet, stießen wir auf ein paar Fragen, die im Auge behalten wert sind. Einige von ihnen wir gelöst, einige waren für uns gelöst, und einige arbeiteten wir herum. Einige wir nie gelöst ...

  • Stellen Sie sicher, dass alle Werkzeuge und alle Ihre Code alle charsets unterstützt Sie verwenden möchten, und die doppelte Annahme überprüfen zweimal im Verlauf des Projekts und ein paar mal mehr sicher sein.

  • Stellen Sie sicher, dass Sie eine Schriftart verwenden, die die Sprachen alles, was Sie verwenden möchten, unterstützt. Die meisten Schriften, die sein Unicode-Anspruch sind nur Unicode in dem Sinne, dass die Zeichen ist es an der richtigen Codepunkt hat. Es bedeutet nicht, dass es verwendbare Zeichen für alle Codepoints.

  • hat
  • Textumbruch nicht nur in Abständen durchgeführt, da einige Sprachen nicht verwenden Raum Worte zu trennen (chinesisch den Sinn kommt). Achten Sie darauf, Ihren Text-Wrapping-Routinen behandelt Text ohne Leerzeichen überhaupt.

  • Plural richtig Handhabung ist schwierig, in den einfachen Fällen und hart in den harten Fällen verdammt. Stellen Sie sicher, dass Sie genug über die Sprachen kennen Sie werden mit der Lage sein, Code zu schreiben, korrekt den Plural Problem zu behandeln. Beachten Sie, dass Englisch (und die anderen „westlichen“ Sprachen sind unter den leichten.

  • Nie Sätze brechen und bauen Strings mit ihnen eine Variable passen, wie die Variablen könnten an anderer Stelle im Satz in einer anderen Sprache gestellt werden. Verwenden Sie Platzhalter.

  • Beachten Sie, dass der Wert der Platzhalter für einige Sprachen, könnte sich ändern, wie Sie den Satz zu schreiben. Grammatik ist schwer. Stellen Sie sicher, dass Sie einen Plan haben für den Umgang mit ihr. (Genauer gesagt, stellen Sie sicher, eine Möglichkeit haben, die Werte, die Sie in dem Platzhalter nach Geschlecht, Zeit, etc. verwenden, um eine Klassifizierung).

Ich mag die folgenden Bemerkungen machen - das ist von einigen Unternehmensrichtlinien, wo die Klasse-1 Produkte übersetzt werden in 31 verschiedenen Gegenden. Im Anschluss an diese Richtlinien, hat uns (unser Entwicklungsteam, anstatt das gesamte Unternehmen), um die höchste Produktivität in der Übersetzung.

  • Versuchen Sie nicht, Schnipsel von Fehlermeldungen wieder zu verwenden. Zum Beispiel glaube nicht, dass, weil Sie die zwei Fehler "You selected the wrong menu item" und "That menu item is not yet available" haben, können Sie "menu item" in einer separaten Position extrahieren und in beiden Orten. Alle Nachrichten sollen selbst enthalten sein, wie ihre Übersetzungen Preise ändern Kontext basieren.

  • Verwenden Sie ein professionelle Übersetzer Wissen über Technologie. Wenn Sie in der Nähe von einem Dienst wie Babelfish gehen, wirst du alles, was Sie verdienen bekommen. Zum Beispiel ist "Microsoft Windows" "Microsoft Windows" überall auf dem Planeten, ist es nicht "Microsoft Fenster" in Deutschland werden zu lassen.

  • Versuchen Sie nicht einzubetten Variablen in Ihre Nachrichten (wie "The %1 has failed" wo %1 ändert sich dynamisch), da Positionen und in der Tat, Geschlecht ändern können: "La table est rubbish" gegen "L'Homme est drunk" oder "The red table" vs "La table rouge". Besser ein allgemeines Substantiv zu verwenden, mit angehängten Parametern. "The item has failed [%1]"

  • Nur Worte übersetzt, die der Benutzer erwartet wird, sehen. Log-Meldungen in einer Protokolldatei (das nur Sie verwenden) sollte in Englisch sein (oder Ihre Muttersprache), nicht übersetzt um so etwas wie Swahili, die Sie sowieso nicht lesen können.

  • Menüs sollten durch Funktionalität, nicht Sortier Reihenfolge sortiert werden.

  • Übersetzbare Einheiten sollten externe , um den Code und geladen in zur Laufzeit gespeichert werden. Dies macht die Übersetzung eine Frage von nur Versand aus der externen Datei, nicht versuchen, Änderungen in der Mitte des Codes Schuhanzieher. Es macht auch andere Sprachen leichter in Zukunft hinzuzufügen.

Das ist genug für heute. Besser zu stoppen, bevor Sie alle einschlafen: -)

Eine Sache, über die Zahlen: in Englisch, wie ich sie verstehe, verwenden Sie nur eine singuläre mit 1 und Plural mit 2 oder mehr. Wie: „Sie haben 1 Meldung“; „2 Nachrichten“; „3 ... Nachrichten“. In Russisch, bekommen diese Dinge komplizierter. Sie Einzahl verwenden für 1, 21, 31, 41 ... 101, 121 (ja, für alles, was mit 1 Ausnahme endet, wenn es endet mit 11). Dann nutzen Sie Singular Genitiv für 2, 3, 4; 22, 23, 24; 32, 33, 34 ... 102, 103, 104; 122, 123, 124. Und in allen anderen Fällen verwenden Sie Plural Genitiv .

Es ist nicht wirklich schwer zu implementieren. Was ist hart ist jedoch etwas zu implementieren, die mit all ihrer Verrücktheit wissen, wie mit jeder a priori unbekannten Sprache beschäftigen: -)

Und das ist nur Zahlen: -)

Ich habe nicht eine ganze Menge zu den großen Antworten hinzufügen, so weit, aber hier sind ein paar Dinge zu beachten und zu überprüfen.

  • Sie keine Annahmen getroffen werden. Dies ist der Fang aller Regel. Es ist leicht, die Dinge zu übernehmen, die Region oder die Sprache spezifisch sind, und es ist schwer, diese Annahmen zu bemerken.
  • Seien Sie sehr vorsichtig mit String-Vergleiche. Es gibt einige Sprachen wie Türkisch, die Buchstaben, die visuell auf andere ähnlich sind, aber die sind unterschiedlich.
  • Verwenden Sie Pseudo-Übersetzung als Rauchtest. Wenn Sie Ihre übersetzten Zeichenfolgen aus einer Ressourcendatei lesen, erstellen Sie eine Pseudo-übersetzte Version der Datei, die noch verständlich für Sie ist aber in der betont wird, die Kapazität und Leistungsfähigkeit jede übersetzbar Zeichenfolge in der Anwendung. Zum Beispiel polstert eine Zeichenfolge wie „Abbrechen“, mit so etwas wie „CancelXXXX!“ so dass es so breit wie Ihre Zulage für setzten Strings. Dann können Sie testen, um sicherzustellen, dass jede Zeichenfolge vollständig angezeigt wird. Zusätzliche Kredite für wahrscheinlich auch gerendert werden, um sicherzustellen, dass es korrekt angezeigt in allen Orten in dem komplexeste Charakter kleben.
  • Sie keine Annahmen über Tastaturlayout machen. „ASDW“ ein großer Steuersatz von Richtungstasten für QWERTY-Tastaturen sein kann, aber schwer Codierung, die es unfreundlich, wenn nicht unmöglich macht, verwenden für Menschen mit anderen Tastaturlayouts.
  • Test verschiedene Einstellungen Datum, dann testen sie erneut. Ich habe Probleme gesehen wegen etwas so klein wie ein anderes Format für „AM / PM“ in regionalen Einstellungen. Die mm / tt / vs. tt / mm / jjjj kommt auch viel, aber jeder hier einstellen kann Materie.
  • Test verschiedene Zahlenformate, dann testen sie wieder. Sie wollen nicht auf dezimal oder Tausendertrennzeichen abhängen, zum Beispiel.
  • Test mit und ohne dass ein Benutzer in den Server angemeldet. Dies kann mehr Windows-spezifisch, aber es ist sehr einfach, eine Komponente auf dem Server bekommen so konfigurierte, dass es die in Benutzer protokolliert verwendet regionale Einstellungen, während ein Benutzer in und eine Standard-Ländereinstellung wird protokolliert, wenn der Benutzer nicht angemeldet ist. Dies kann seltsam, unterbrochenes Verhalten führen.
  • Test mit verschiedenen regionalen und Spracheinstellungen. Als Beispiel nicht nur, dass Windows verfügt Regions- und Spracheinstellungen, aber IE seine eigene Spracheinstellung hat. Das Verhalten eines IE-Client mit en-us zuerst nicht immer das gleiche sein wie ein mit en-nz zuerst aufgeführt, zum Beispiel.
  • Achten Sie darauf, Ihr Übersetzer das Geschäft versteht und die Sprachen, dann Cross-Check mit jemand anderem. Seien Sie sehr vorsichtig, immer wenn Sie anwendungsspezifische Terminologie verwenden. Wenn Ihr Programm bestimmte Worte verwendet etwas Besonderes in der Anwendung zu verstehen, stellen Sie sicher, dass sie in ähnlicher Weise in jedem Fall umgesetzt werden, auch im Hilfetext. Wenn Sie bestimmte Sprache Ziele haben, könnten Sie sogar so weit gehen, solche Worte vor der Zeit zu übersetzen und sicherstellen, dass sie nicht schlecht in den Zielsprachen übersetzen. Dies ist eher eine Produktforschung Sache, aber es kann einen Unterschied macht in welchen Worte in der Schnittstelle verwendet werden, und es ist einfacher, auf jedem wenn diese Worte anstelle von Anfang an sind. Sie wollen auch Idiome vermeiden, die auch nicht übersetzen kann.

Okay, ich hatte mehr zu sagen, als ich dachte ...

Eine Sache, die ich auf die harte Tour gelernt., Wenn Sie mehrere Dateien, die übersetzt werden müssen, gehören eine zusätzliche Markierung im Namen, so dass Sie später Ihren ganzen Ordner für diesen Tag suchen

z. stattdessen eine Datei 'Probe-database.txt' zu benennen benennen Sie die Englisch-Version 'Sample-Datenbank-loc-en.txt', die italienische Version ‚Probe-Datenbank-loc-it.txt

Meine erste Antwort in Stackoverflow, so verzeihen, wenn einige dumme gesagt wurde.

Aus meiner Erfahrung:

  • PHP : gettext war äußerst hilfreich;
  • nicht-westliche Sprachen : UTF-8 überall (Code, DB) und so weit gut wir tun;
  • Gibt es spezifische gotchas, die Sie in der Praxis erlebt haben? Breaking lange Absätze für i18n in verschiedene Sätze können weniger teuer zu übersetzen, wenn der String mehr als einmal in der Website wiederholt Sie nur müssen sie einmal haben übersetzt. Aber seien Sie vorsichtig, wenn Sie den Text zu viel Übersetzer Kontext verlieren Fragment;
  • Ich habe viele Projekte und Seiten gesehen lassen ihre Gemeinden für ihre Anwendungen Übersetzung liefern und Inhalt. Haben Sie diese empfehlen und was sind einige gute Strategien, um sicherzustellen, dass Sie eine gute Übersetzung haben? Wenn Sie eine sehr große Anzahl von Freiwilligen haben gehen für sie, aber je nachdem, wie viel Text, den Sie haben, können Sie wirklich brauchen ein Tonne von Freiwilligen. Achten Sie immer darauf, dass Sie jemand, den Sie der Führer einer Sprachprojekt sein Vertrauen Sie den Korrekturleser sein Kontrolle der Richtigkeit der Übersetzung.
  • Sortierungs / Sortierregeln können wild zwischen den Sprachen unterscheiden: ä sortiert ist anders in deutscher Sprache, als es in Schwedisch. So braucht das Sortieren zu sein kulturspezifisch.
  • Ober / Kleinschreibung kann suprises halten: Der deutsche „scharfen S“ -Zeichen ß nicht über eine Großversion und wird entweder auf „SS“ umgewandelt, oder bleibt klein geschrieben, wenn Genauigkeit wichtig ist. Türkisch hat einen dotless Klein i und eine Groß punktierten mich.
  • Für mehrsprachige Web-Anwendungen, sorgfältig darüber nachdenken, wie zu entscheiden, welche Version zu zeigen, und wie es in die URL zu arbeiten. Der Benutzer sollte immer in der Lage sein, um manuell die Sprache zu wählen, und Sie wollen Suchmaschinen zu verschiedenen Sprachversionen unter verschiedenen URLs zu finden.
  • Einige ostasiatische Sprachen (nämlich Japanisch und Chinesisch, vielleicht andere) haben keine Leerzeichen zwischen den Wörtern
  • Japanisch (vielleicht auch andere) hat separate Versionen ( „volle Breite“) der arabischen Ziffern und Raum, und sogar zwei Versionen einiger seiner eigenen Charaktere (halbe Breite und in voller Breite Katakana).

Ja, das ist ein massiv Thema. Immer es richtig ist, eine Menge Arbeit.

In meinem Programm verwende ich einen Integer-Schlüssel für jedes Stück von Text und suchen Sie es in einer Datei auf, als abhängig von der Sprache benötigt. Es gibt keine Literalzeichenfolgen irgendwo im Code, nur Schlüssel. Ich sehe sie mit einem „Enum“ in C ++, so bin ich nicht wirklich Eingabe von Zahlen. Ich schrieb ein Programm, um die verschiedenen Sprachdateien zu synchronisieren, wenn ich mehr Aufzählungen hinzufügen und die Übersetzer füllen die Lücken.

Jede Taste hat auch eine zugehörige Tooltip, Bild, Tastenkürzel, etc.

Wie für Zeiten und Daten ... wieder, das ist viel komplexer, als Sie vielleicht denken, aber nicht PHP dies für Sie nicht damit umgehen? (Ich weiß nicht, ich bin ein C ++ Typ ...)

PHP stellt Strings intern als Byte-Streams, und geht davon aus iso-8859-1, für die Fälle, in denen die Codierung Angelegenheiten. Zum größten Teil, können Sie nur UTF-8 verwenden, um alle über den Platz, und Sie werden in Ordnung sein. Eine gotcha, wenn Ihre Website einer Eingabe von seinen Benutzern nimmt, ist, dass man nie 100% sicher sein kann, dass sie Inhalte in der richtigen Codierung einreichen. Sie könnten mb_detect_encoding verwenden möchten Eingang, um zu überprüfen, oder ein verstecktes Feld verwenden, um mit „exotischen“ Zeichen gegen zu überprüfen.

Bitte beachten Sie, dass alle String-bezogene Funktionen in PHP, dass die Arbeit an einem Zeichen Basis wird angenommen, dass Zeichen = Byte. Das bedeutet, dass Sie in der Regel nicht String-Funktionen vertrauen können. Hier finden Sie aktuelle dieser Seite für weitere Details.

Eine weitere gute Ressource für PHP, ist Nick Nettleton der Spickzettel .

Ein Thema, das zu charsets / Codierungen sehr eng verwandt ist, ist Sortierungs . Sie benötigen Sortierungen, die Sprache entsprechen / Kultur, die Sie gerade arbeiten. Zumindest in MySql (wahrscheinlich auch in anderen RDBMS'es auch), können Sie die Sortierung auf verschiedene Ebene angeben, wie pro-Datenbank, pro-Tabelle, pro-Spalte und auch in der Abfrage selbst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top