3 votes

Représentation des chaînes de caractères en c#

J'essaie d'extraire du texte d'une page Web existante en utilisant cette méthode :

  try
        {

            WebClient client = new WebClient();
            result = client.DownloadString(url);
            int start = result.IndexOf("startpointstr") ;

            end = result.IndexOf("EndpointStr");

            result = result.Substring(start, end - start);
          string.Format(
            MessageBox.Show(result);

        }
        catch (Exception ex)
        {
            // handle error
             MessageBox.Show(ex.Message);

        }

en positif, cela fonctionne pour l'anglais mais pour des langues comme l'hébreu il retourne des caractères non reconnus (pas une langue hébraïque) Y a-t-il un moyen de reformater la chaîne retournée ?

5voto

Jaroslav Jandek Points 5500

Utilisez le Propriété WebClient.Encoding pour définir l'encodage de la ressource.

client.Encoding = System.Text.Encoding.UTF8;

1voto

BrokenGlass Points 91618

Vous devez connaître le codage de la page que vous téléchargez avant de la convertir en chaîne. Les candidats à vérifier seraient par ordre de préséance :

  1. HTTP Content-Type de la réponse ( jeu de caractères valeur de l'attribut)
  2. balise META http-equiv ( jeu de caractères valeur de l'attribut)
  3. BOM du flux retourné ( Marque de l'ordre des octets )
  4. UTF-8 comme valeur par défaut

Notez que toutes les pages web ne sont pas codées en UTF-8, surtout en dehors de l'hémisphère occidental.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X