2009-09-02 7 views
3

Si j'ai une page HTML avec le réglage à UTF-8. puis je saisis les caractères chinois avec l'encodage big5 dans le formulaire et je les soumets. quel est le codage côté serveur? est-il automatiquement converti en UTF-8? Ou comment ça marche ?? Merci!quel est le codage?

Supplément1: En fait, je ne suis pas vraiment sûr, pourquoi le navigateur peut décider quel encodage utiliser? puisque le codage a été généré par IME. par exemple: l'outil que j'ai utilisé pour entrer le caractère chinois, non?

supplement2: si tout comme ce que « Michael Madsen » a dit au-dessous de la réponse, alors comment peut asp.net gérer cela, de sorte que ce soit et quelle que soit la saisie des caractères i dans les formes, il sera pas toujours corrompu mais jsp ne peut pas?

Répondre

3

Le navigateur fonctionne avec Unicode - lorsque les caractères sont tapés à l'intérieur, ils sont stockés en interne comme Unicode. Lorsque le formulaire est soumis, il sort les caractères quel que soit le codage approprié - généralement le codage de la page. Si vous parlez de copier/coller à partir d'un document Big5, il sera déjà converti en Unicode lorsqu'il est inséré dans le presse-papiers - peut-être même lorsque le document est chargé, en fonction de votre éditeur.

Si vous parlez d'utiliser un IME pour saisir les caractères, la question est en quelque sorte erronée, car votre IME devrait fonctionner exclusivement avec Unicode et l'encodage Big5 n'est donc jamais impliqué. Si c'est le cas, alors il y a une couche entre la conversion de/vers Unicode de toute façon, donc quelle que soit cette partie, le navigateur ne connait jamais le codage source.

+0

pourquoi? système peut convertir automatiquement la chaîne de big5 en utf-8? – MemoryLeak

+1

Oui. Le système d'exploitation sait comment passer des valeurs de chaque codage à un caractère réel, qui sera représenté en utilisant le codage interne du système d'exploitation lorsque le système d'exploitation fait quelque chose avec lui. C'est pourquoi les applications héritées fonctionnent toujours sous Windows - Windows utilise UTF-16 en interne, mais les applications héritées utilisant une page de code spécifique à une langue peuvent appeler une couche de compatibilité qui appelle simplement les versions Unicode des fonctions API après l'envoi du texte à la fonction. été converti (le texte renvoyé par la fonction API est également converti dans l'autre sens, bien sûr). –

+0

Étant donné que le navigateur est compatible Unicode, il peut comprendre et traiter les données qui lui sont fournies par le système d'exploitation sans conversion. Une fois qu'il est demandé de soumettre le formulaire, il convertit du codage du système au codage demandé par le serveur et envoie le texte converti. –

0

Le navigateur peut envoyer son message dans big5 s'il le souhaite, et le serveur devrait pouvoir gérer cela. Mais que voulez-vous dire par "je saisis des caractères chinois avec l'encodage big5 dans le formulaire"? Quand vous entrez les caractères, c'est au navigateur de décider quel encodage utiliser, sûrement?

+0

En fait, je ne suis pas vraiment sûr, pourquoi le navigateur peut décider quel encodage utiliser? puisque le codage a été généré par IME. par exemple: l'outil que j'ai utilisé pour entrer le caractère chinois, non? – MemoryLeak

+0

Cela va juste obtenir les données de texte dans le navigateur d'une manière appropriée. L'important est les valeurs textuelles, pas l'encodage impliqué. En fonction du système d'exploitation, du navigateur et de l'IME qui peuvent se produire de plusieurs façons, mais tant que le navigateur sait quels caractères Unicode transmettre, il peut alors décider d'utiliser l'encodage qu'il aime (et le mettre dans les en-têtes). –

+0

ce que nous pouvons voir est "valeurs textuelles", mais l'ordinateur ne peut reconnaître l'encodage que comme valeur HEX, non? Donc, si vous entrez le caractère avec IME et que vous générez le caractère big5, le navigateur le traduira-t-il automatiquement en UTF-8? – MemoryLeak

Questions connexes