2010-06-09 4 views
0

J'essaie de trouver une chaîne en hébreu dans un site Web. Le code de lecture est joint. Ensuite, j'essaye de lire le fichier en utilisant streamReader mais je ne peux pas faire correspondre les chaînes dans d'autres langues. qu'est-ce que je suis supposé faire?lire des pages html non-anglais avec C#

// used on each read operation 
    byte[] buf = new byte[8192]; 

    // prepare the web page we will be asking for 
    HttpWebRequest request = (HttpWebRequest) 
     WebRequest.Create("http://www.webPage.co.il"); 

    // execute the request 
    HttpWebResponse response = (HttpWebResponse) 
     request.GetResponse(); 

    // we will read data via the response stream 
    Stream resStream = response.GetResponseStream(); 

    string tempString = null; 
    int count = 0; 
    FileStream fileDump = new FileStream(@"c:\dump.txt", FileMode.Create); 
    do 
    { 
     count = resStream.Read(buf, 0, buf.Length); 
     fileDump.Write(buf, 0, buf.Length); 

    } 
    while (count > 0); // any more data to read? 

    fileDump.Close(); 

Répondre

0

Il vous manque encodeur approprié, jetez un oeil à WebResponse.GetResponseStream Method pour plus de détails

Mise à jour: Utiliser l'hébreu (Windows) encodage est 1255

Encoding encode = System.Text.Encoding.GetEncoding(1255); // Hebrew (Windows) 

// Pipe the stream to a higher level stream reader with the required encoding format. 
StreamReader readStream = new StreamReader(resStream , encode); 
+0

toujours rien ... Je pense que mon problème peut-être avec la chaîne recherchée, je veux dire que je ne peux pas simplement correspondre: str.contains ("autre code de langue"); à droite? qu'est-ce que je suis supposé faire? – AYBABTU

+0

J'ai essayé d'encoder le message recherché mais il a échoué aussi string messageToFind = "otherLanguage"; UTF8Encoding utf8 = nouveau UTF8Encoding(); Octet [] encodedBytes = utf8.GetBytes (messageToFind); messageToFind = encodedBytes.ToString(); – AYBABTU

0

a résolu le problème.

Le problème choisissait le mauvais encodage, j'ai choisi utf-8 qui est pas toujours la bonne réponse :)

lignes principales:

Encoding encode = System.Text.Encoding.GetEncoding("windows-1255"); 
StreamReader readStream = new StreamReader(ReceiveStream, encode); 
+0

S'il vous plaît, éditez votre question initiale et ajoutez ceci comme votre solution pour les autres avec le même problème. – Marcote