2010-06-23 10 views
2

Je dois extraire les caractères chinois de la chaîne de requête dans une application Web ASP.NET. Quand je l'ai essayé, j'ai "????" au lieu du texte actuel. Je sais que je dois le décoder avec UTF-8 mais ça ne marche pas. J'ai utilisé:Extrait du texte chinois de la chaîne de requête

String text = System.Web.HttpUtility.UrlDecode(Request.QueryString["text"], System.Text.Encoding.UTF8); 

mais je reçois "???" de retour de l'opération.

Aidez-nous s'il vous plaît.

Répondre

4

Il existe deux cas.

1er cas où votre URL est réelle en chinois, la seule fonction qui l'obtenir est le Request.RawUrl (et non le Request.QueryString [ « text »]) De Request.RawUrl vous avez besoin obtenir manuellement votre texte chinois à partir du texte = ελληνικασανκινεζικα.

2ème cas où vous avez d'abord encoder votre chaîne d'URL avant de l'envoyer. Dans ce cas le code que j'utilise est

String text = Server.UrlDecode(Request.QueryString["text"]); 

Espérons cette aide.

Note: Si vous essayez de faire un test avec Google Chrome, alors ce que vous tapez sur url chrome est encoder/décoder automatiquement par le navigateur et vous ne voyez pas ce que vous envoyez. Essayez d'utiliser, par exemple, pour faire votre test.

+0

Je ne peux pas utiliser le cas 2 car la requête provenant du navigateur client est la première demande. Je ne définis donc pas les valeurs dans la chaîne de requête. Je vais essayer avec le cas 1. –

+0

@A Junkie Rappelez-vous que vous avez besoin de manuel pour obtenir le texte ... recherche? symbole, alors pour le TEXTE = etc ... – Aristos

+0

salut je vois ??? dans l'URL Raw aussi. "ClienteExterno.aspx? Text = ??? & destinations = 6981" –