ANSI vs SHIFT JIS vs UTF-8 en c#
J'ai été à essayer de comprendre la différence pour un certain temps maintenant. Le problème avec un fichier qui est dans le codage ANSI a des caractères japonais comme: ‚È‚‚Æ‚à1‚‚ÌINCREMENTs‚ª•K—v‚Å‚·.
équivalent en shift-jis est 少なくとも1つのINCREMENT行が必要です.
qui devrait être en japonais.
J'ai besoin d'afficher ces caractères après la lecture d'un fichier(ANSI) sur une page web. Il y a quelques autres fichiers en UTF-8 affichage de caractères droit de ne pas voir cette. Je trouve qu'il est difficile de comprendre quelle est la différence et comment puis-je changer l'encodage à faire de bonnes choses ici..
J'utilise c# pour la lecture de ce fichier et l'afficher, j'ai aussi besoin d'écrire la chaîne de retour dans le fichier si sa modifiée sur le web. Tout d'encodage et de décodage des schémas ici?
Je crois que c'est..atleast ici à mon lieu de travail. Nous essayons de nous en débarrasser. Si j'essaie de conversion de l'ANSI en unicode, il est livré avec des personnages loufoques.
Unicode résistance est encore forte au Japon, même de nos jours. Une des raisons est que
¥
a été localisé sur le ` \ `, faisant des aller-retour à partir de Shift-JIS à Unicode et à l'arrière impossible. Je ne sais pas celui qui ont cette idée folle et complètement foiré les choses. D'autres affirment plutôt que de l'UTF-8 est plus long pour les textes en Japonais (vrai pour pure Kanji, mais souvent à tort pour les fichiers html)OriginalL'auteur remo | 2012-04-18
Vous devez vous connecter pour publier un commentaire.
Autant que les pages de code sont concernées, "ANSI" (et
Encoding.Default
.NET) en fait signifie simplement "le non-Unicode page de code utilisée par ce système" - exactement ce que la page de codes qui est, dépend de la façon dont le système est configuré, mais sur une europe Occidentale du système, il est susceptible d'être Windows-1252.Pour le système où ce texte vient, puis "ANSI" semblerait signifier Shift-JIS - donc, sauf si votre système dispose de la même page de code, vous devrez indiquer votre code pour lire le texte comme Shift-JIS.
En supposant que vous êtes en train de lire le fichier avec un StreamReader, il y a plusieurs constructeurs qui prennent un L'encodage, donc il suffit de prendre un Shift-JIS encodage avec
Encoding.GetEncoding("shift_jis")
ouEncoding.GetEncoding(932)
et l'utiliser pour construire votre StreamReader.Oui. C# fonctionne toujours avec Unicode (plus précisément UTF-16LE) en interne, donc une fois qu'il sait que c'est à la lecture de Shift-JIS à partir de votre fichier, il peut convertir la chaîne correctement, et il peut être stocké correctement dans votre base de données (tant que la base de données aussi utilise Unicode). De même, votre page web peut lire les données de sortie et les correctement (en utilisant généralement UTF-8)
le web convertir unicode de Shift-JIS sur son propre?
Je ne comprends pas votre question. Vous n'avez pas besoin de convertir Unicode de Shift-JIS, sauf si vous êtes de traitement de données avec quelque chose qui ne s'attend Shift-JIS. Tous les navigateurs utilisent Unicode en interne, ils n'ont pas besoin de convertir en Shift-JIS pour afficher les caractères Japonais.
Si vous cliquez sur le "Encodage" lien dans mon post, vous trouverez une liste de tous les encodages connu .NET. IIRC, vous aurez envie de la page de code 949 pour le coréen et le code de la page 936 pour le Chinois simplifié.
OriginalL'auteur Michael Madsen