2009-09-03 8 views
2

Dans mon application ASP.NET MVC j'utilise Chinese Category Name, il était affiché comme %E8%82%B2%E5%84%BF dans l'adresse URL d'IE, mais la valeur réelle est '育儿'. Je veux savoir comment je peux convertir '育儿' en %E8%82%B2%E5%84%BF en C# et comment puis-je le convertir, aussi. Est-il possible d'afficher '育儿' dans le lien URL directement? Sera-ce bon pour le référencement?Comment utiliser l'encodage C# et décoder les caractères 'chinois'

Répondre

6

Le texte affiché dans la barre d'adresse d'IE correspond au format codé en URL de la version hexadécimale de ces caractères. La version hexadécimale de '育儿' codé en UTF-8 est E882B2E584BF:

byte[] buffer = new byte[] { 0xE8, 0x82, 0xB2, 0xE5, 0x84, 0xBF }; 
string s = Encoding.UTF8.GetString(buffer); 

s est égal à 育儿.

Vous ne devez pas transmettre les caractères chinois directs dans l'URL, il doit être codé en URL en utilisant HttpServerUtility.UrlEncode et UrlDecode.

0

Avez-vous vérifié pour vous assurer que vous utilisez le codage Unicode (au lieu du défaut)? L'encodage par défaut ne gère pas les caractères chinois.

+0

Pouvez-vous bien vouloir me donner un exemple? – CodeYun

1

HttpUtility.UrlEncode va encoder une URL, et HttpUtility.UrlDecode va le changer.

Exemple:

string orig = "http://example.com/育儿"; 
string encoded = HttpUtility.UrlEncode(orig); 
// encoded should equal "http://example.com/%E8%82%B2%E5%84%BF" 
Questions connexes