


Je travaille récemment sur un projet et l'une des fonctions consiste à obtenir le code source d'une page Web en fonction d'une adresse URL. Dans ASP.NET (C#), il semble exister de nombreuses façons d'obtenir le code source d'une page Web. Je viens de créer un simple WebClient, très simple et facile. Mais un problème très ennuyeux est apparu plus tard, à savoir les caractères chinois tronqués.
Après une étude minutieuse, les pages Web chinoises ne sont rien de plus que deux encodages : GB2312 et UTF-8. Nous avons donc le code suivant :
/// <summary> /// 根据网址的URL,获取源代码HTML /// </summary> /// <param name="url"></param> /// <returns></returns> public static string GetHtmlByUrl(string url) { using (WebClient wc = new WebClient()) { try { wc.UseDefaultCredentials = true; wc.Proxy = new WebProxy(); wc.Proxy.Credentials = CredentialCache.DefaultCredentials; wc.Credentials = System.Net.CredentialCache.DefaultCredentials; byte[] bt = wc.DownloadData(url); string txt = System.Text.Encoding.GetEncoding("GB2312").GetString(bt); switch (GetCharset(txt).ToUpper()) { case "UTF-8": txt = System.Text.Encoding.UTF8.GetString(bt); break; case "UNICODE": txt = System.Text.Encoding.Unicode.GetString(bt); break; default: break; } return txt; } catch (Exception ex) { return null; } } }
Pour expliquer un peu, WebClient est utilisé ici pour créer un objet wc (cette dénomination est un peu délicate). Appelez ensuite la méthode DownloadData de l'objet wc, transmettez la valeur URL et renvoyez un tableau d'octets. Par défaut, GB2312 est utilisé pour lire ce tableau d'octets et le convertir en chaîne. Recherchez les caractères caractéristiques du format de codage de la page Web à partir de la chaîne du code source de la page Web, par exemple en recherchant des informations telles que charset="utf-8", pour déterminer le format de codage de la page Web actuelle.
La fonction GetCharset permet d'obtenir le format d'encodage de la page web courante. Le code spécifique est le suivant :
/// <summary> /// 从HTML中获取获取charset /// </summary> /// <param name="html"></param> /// <returns></returns> public static string GetCharset(string html) { string charset = ""; Regex regCharset = new Regex(@"content=[""'].*\s*charset\b\s*=\s*""?(?<charset>[^""']*)", RegexOptions.IgnoreCase); if (regCharset.IsMatch(html)) { charset = regCharset.Match(html).Groups["charset"].Value; } if (charset.Equals("")) { regCharset = new Regex(@"<\s*meta\s*charset\s*=\s*[""']?(?<charset>[^""']*)", RegexOptions.IgnoreCase); if (regCharset.IsMatch(html)) { charset = regCharset.Match(html).Groups["charset"].Value; } } return charset; }
Pour plus d'articles connexes sur des exemples d'utilisation de C# pour obtenir le code source HTML des pages Web, veuillez faire attention au site Web PHP chinois !

C # et .NET offrent des fonctionnalités puissantes et un environnement de développement efficace. 1) C # est un langage de programmation moderne et orienté objet qui combine la puissance de C et la simplicité de Java. 2) Le Framework .NET est une plate-forme pour créer et exécuter des applications, en prenant en charge plusieurs langages de programmation. 3) Les classes et les objets en C # sont le cœur de la programmation orientée objet. Les classes définissent les données et les comportements, et les objets sont des instances de classes. 4) Le mécanisme de collecte des ordures de .NET gère automatiquement la mémoire pour simplifier le travail des développeurs. 5) C # et .NET fournissent des fonctions de fonctionnement de fichiers puissantes, prenant en charge la programmation synchrone et asynchrone. 6) Les erreurs courantes peuvent être résolues via le débogueur, l'exploitation forestière et la gestion des exceptions. 7) L'optimisation des performances et les meilleures pratiques incluent l'utilisation de StringBuild

.NetFramework est une plate-forme de développement multiplateforme multi-langues qui fournit un modèle de programmation cohérent et un environnement d'exécution puissant. 1) Il se compose de CLR et FCL, qui gère la mémoire et les threads, et FCL fournit des fonctions pré-construites. 2) Les exemples d'utilisation incluent la lecture des fichiers et des requêtes LINQ. 3) Les erreurs courantes impliquent des exceptions non gérées et des fuites de mémoire et doivent être résolues à l'aide d'outils de débogage. 4) L'optimisation des performances peut être obtenue grâce à la programmation et à la mise en cache asynchrones, et le maintien de la lisibilité et de la maintenabilité du code est la clé.

Les raisons pour lesquelles C # .NET reste durable comprennent ses excellentes performances, son écosystème riche, son soutien communautaire solide et ses capacités de développement multiplateforme. 1) Excellentes performances et convient à l'application au niveau de l'entreprise et au développement de jeux; 2) Le Framework .NET fournit une large gamme de bibliothèques de classe et d'outils pour prendre en charge une variété de domaines de développement; 3) Il a une communauté de développeurs active et des ressources d'apprentissage riches; 4) .netcore réalise le développement multiplateforme et élargit les scénarios d'application.

Les motifs de conception en C # .NET incluent les modèles singleton et l'injection de dépendance. 1.Singleton Mode garantit qu'il n'y a qu'une seule instance de la classe, qui convient aux scénarios où les points d'accès mondiaux sont nécessaires, mais l'attention doit être accordée aux problèmes de sécurité et d'abus. 2. L'injection de dépendance améliore la flexibilité du code et la testabilité en injectant les dépendances. Il est souvent utilisé pour l'injection de constructeur, mais il est nécessaire d'éviter une utilisation excessive pour augmenter la complexité.

C # .NET est largement utilisé dans le monde moderne dans les domaines du développement de jeux, des services financiers, de l'Internet des objets et du cloud computing. 1) Dans le développement de jeux, utilisez C # pour programmer via le moteur Unity. 2) Dans le domaine des services financiers, C # .NET est utilisé pour développer des systèmes de trading haute performance et des outils d'analyse des données. 3) En termes d'IoT et de cloud computing, C # .NET fournit la prise en charge des services Azure pour développer la logique de contrôle des périphériques et le traitement des données.

.Netframeworkiswindows-centric, while.netcore / 5/6Supportscross-plateformDevelopment.1) .netframework, puisque 2002, iSidealForwindowsApplications butlimitedIncross-PlateformCapabilities.2) .NetCore, à partir de 2016, AnditseVolutions (.Net5 / 6) offrantbetterperperper, Cross-witsevolutions (.Net5 / 6) offrantbetterperperper, Cross-wit-,.

La communauté C # .NET Developer fournit des ressources et un soutien riches, notamment: 1. Documents officiels de Microsoft, 2. Forums communautaires tels que Stackoverflow et Reddit, et 3. Projets open source sur GitHub. Ces ressources aident les développeurs à améliorer leurs compétences en programmation de l'apprentissage de base aux applications avancées.

Les avantages de C # .NET comprennent: 1) les fonctionnalités linguistiques, telles que la programmation asynchrone simplifie le développement; 2) Performance et fiabilité, améliorant l'efficacité par le biais de mécanismes de compilation JIT et de collecte des ordures; 3) Prise en charge multiplateforme, .Netcore étend les scénarios d'application; 4) Un large éventail d'applications pratiques, avec des performances exceptionnelles du Web au bureau et au développement de jeux.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel
