[{"content":"À propos de Softinbit Technology « Concevoir des systèmes logiciels qui ne peuvent pas tomber en panne. »\nSoftinbit Technology est une initiative d’ingénierie et une publication technique consacrées à la construction d’architectures backend .NET résilientes et à haut débit, de systèmes cloud distribués et de logiciels critiques.\nForts de plus de 12 ans d’expérience pratique en ingénierie dans deux domaines exigeants, l’infrastructure financière temps réel et l’automatisation industrielle critique, nos contenus suivent une philosophie unique : une tolérance aux pannes poussée à l’extrême, des architectures observables et une reprise résiliente.\n🏦 Systèmes backend et fintech critiques Notre expertise technique porte sur la conception, la maintenance et la montée en charge des services backend qui font tourner des systèmes financiers de trading et de transactions à haute disponibilité :\nMicroservices tolérants aux pannes : services backend .NET Core évolutifs traitant des milliers de transactions simultanées à forte valeur, avec des exigences de disponibilité de 99,9 % et plus. Latence ultra-faible et haute performance : grilles de données en mémoire (IMDG), stratégies de cache efficaces et messagerie distribuée (RabbitMQ, Hangfire) pour des chemins de données sous la milliseconde. Intégrations résilientes : intégrations REST sans interruption de service avec les flux de données de marché, les passerelles de paiement et les systèmes réglementaires. Ingénierie augmentée par l’IA : flux de travail assistés par l’IA et ingénierie de prompts pour accélérer les livraisons, tout en maintenant des tests unitaires stricts et une architecture propre. 🏭 Racines industrielles : 8 ans dans l’automatisation et le contrôle-commande Avant l’ingénierie backend d’entreprise, nos fondations se sont construites pendant 8 années de programmation, de mise en service et de maintenance de systèmes automatisés dans 5 pays :\nSystèmes d’exécution de la fabrication (MES) multisites et tableaux de bord de production centralisés en temps réel dans des sites de production internationaux. Magasins automatisés (AS/RS) à grande échelle, transstockeurs et convoyeurs automatisés fonctionnant dans des environnements contraints et à haut débit. Boucles de régulation critiques pour la sécurité, interfaces SCADA et chaînes de communication industrielle (OPC, Modbus, TCP/IP). Pourquoi c’est important pour le logiciel backend :\nQuand on a résolu des pannes de systèmes temps réel au cœur d’une usine, on aborde la conception logicielle autrement. Nous concevons des architectures backend avec un respect instinctif des situations de concurrence (race conditions), des délais d’expiration, des interblocages et de la dégradation progressive.\n🛠️ Arsenal technique Backend et frameworks : C#, .NET 8 / 9 / 10, ASP.NET Core, Minimal APIs, Blazor, WCF, Clean Architecture, CQRS, DDD. Données et cache : MS SQL Server, T-SQL, Entity Framework Core, Dapper, In-Memory Data Grids (IMDG), Redis. Messagerie et traitements en arrière-plan : RabbitMQ, Hangfire, Event-Driven Architecture, Outbox Pattern. Qualité d’ingénierie : xUnit, Testcontainers, OpenTelemetry, journalisation structurée (Serilog), CI/CD (GitHub Actions). 📖 Ce que nous publions Remarque : les articles du blog et les séries sont publiés uniquement en anglais.\nZero to Full-Stack .NET : une feuille de route pas à pas, des fondamentaux à la maîtrise full-stack. The .NET Implementation Playbook : des recettes éprouvées en production, prêtes à copier-coller, pour les problèmes backend courants. The .NET Field Guide : comparatifs approfondis, aide-mémoire et retours d’expérience de production. The Modern .NET Toolkit : architectures cloud modernes, intégration de l’IA (Microsoft.Extensions.AI) et outillage moderne. Transparence et usage de l’IA Les articles et tutoriels sont rédigés avec l’aide de l’IA, puis minutieusement testés, relus et édités avant publication.\n📬 Nous suivre et nous contacter LinkedIn : linkedin.com/in/softinbit X (Twitter) : @softinbit GitHub : github.com/softinbit Newsletter Substack : softinbit.substack.com ","permalink":"https://www.softinbit.com/fr/about/","summary":"Ingénierie .NET haute performance, architectures backend tolérantes aux pannes et guides éprouvés en production.","title":"À propos de Softinbit"},{"content":"Ce que fait l’outil Saisissez une expression cron et obtenez une description claire, les 10 (ou 25, 50) prochaines exécutions et le détail de chaque champ. Les heures d’exécution sont calculées par le propre planificateur de cette page en heure locale, en UTC ou dans n’importe quel fuseau horaire IANA : vous pouvez vérifier la planification d’un serveur où que vous soyez.\nSyntaxe prise en charge : *, listes (1,15), plages (1-5), pas (*/10, 5-50/15, 10/20), noms de mois et de jours (JAN, MON-FRI), les macros @hourly, @daily, @weekly, @monthly et @yearly, et les extensions L, W, LW, 5L et MON#2. Quand le jour du mois et le jour de la semaine sont tous deux restreints, un jour correspond si l’un ou l’autre correspond, comme dans le cron classique. Dans les fuseaux à heure d’été, les heures qui n’existent pas sont ignorées et les heures répétées ne s’exécutent qu’une fois.\nCron Unix, Hangfire et Quartz.NET Cron Unix compte 5 champs : minute, heure, jour du mois, mois, jour de la semaine (0 ou 7 = dimanche). Hangfire (qui utilise la bibliothèque Cronos) et NCrontab acceptent les mêmes 5 champs, plus un champ facultatif de secondes en tête (6 champs). Quartz.NET commence toujours par les secondes, ajoute un champ d’année facultatif (6 ou 7 champs), numérote les jours de 1 à 7 avec 1 = dimanche et exige ? dans le jour du mois ou le jour de la semaine. Le format est détecté automatiquement : 7 champs ou un ? activent la numérotation Quartz. Ici, ? est traité comme *. Vous pouvez aussi choisir le format vous-même.\nConfidentialité La description provient de la bibliothèque open source cronstrue ; tout s’exécute dans votre navigateur et rien n’est envoyé.\n","permalink":"https://www.softinbit.com/fr/tools/cron-parser/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eSaisissez une expression cron et obtenez une description claire, les 10 (ou 25, 50) prochaines exécutions et le détail de chaque champ. Les heures d’exécution sont calculées par le propre planificateur de cette page en heure locale, en UTC ou dans n’importe quel fuseau horaire IANA : vous pouvez vérifier la planification d’un serveur où que vous soyez.\u003c/p\u003e\n\u003cp\u003eSyntaxe prise en charge : \u003ccode\u003e*\u003c/code\u003e, listes (\u003ccode\u003e1,15\u003c/code\u003e), plages (\u003ccode\u003e1-5\u003c/code\u003e), pas (\u003ccode\u003e*/10\u003c/code\u003e, \u003ccode\u003e5-50/15\u003c/code\u003e, \u003ccode\u003e10/20\u003c/code\u003e), noms de mois et de jours (\u003ccode\u003eJAN\u003c/code\u003e, \u003ccode\u003eMON-FRI\u003c/code\u003e), les macros \u003ccode\u003e@hourly\u003c/code\u003e, \u003ccode\u003e@daily\u003c/code\u003e, \u003ccode\u003e@weekly\u003c/code\u003e, \u003ccode\u003e@monthly\u003c/code\u003e et \u003ccode\u003e@yearly\u003c/code\u003e, et les extensions \u003ccode\u003eL\u003c/code\u003e, \u003ccode\u003eW\u003c/code\u003e, \u003ccode\u003eLW\u003c/code\u003e, \u003ccode\u003e5L\u003c/code\u003e et \u003ccode\u003eMON#2\u003c/code\u003e. Quand le jour du mois et le jour de la semaine sont tous deux restreints, un jour correspond si \u003cstrong\u003el’un ou l’autre\u003c/strong\u003e correspond, comme dans le cron classique. Dans les fuseaux à heure d’été, les heures qui n’existent pas sont ignorées et les heures répétées ne s’exécutent qu’une fois.\u003c/p\u003e","title":"Analyseur d’expressions cron"},{"content":"Ce que fait l’outil Saisissez ou collez du texte et les statistiques se mettent à jour instantanément : caractères (avec et sans espaces), mots, mots uniques, lignes, phrases, paragraphes, taille en octets UTF-8, ainsi que les temps de lecture et de parole estimés. Le panneau Mots les plus fréquents affiche les mots qui reviennent le plus, en ignorant si vous le souhaitez les mots vides courants de l’anglais.\nUn clic réécrit le texte :\nCasse : MAJUSCULES, minuscules, Majuscules Initiales, Début de phrase, et les styles d’identifiant camelCase, PascalCase, snake_case, kebab-case et CONSTANT_CASE. Les styles d’identifiant agissent ligne par ligne, si bien qu’une liste de noms est convertie d’un coup, et ils découpent correctement les identifiants existants (XMLHttpRequest devient xml_http_request). Lignes : tri A–Z, Z–A ou naturel (file2 avant file10), suppression des doublons, inversion, mélange, rognage des espaces et suppression des lignes vides. Si vous sélectionnez une partie du texte, la transformation ne s’applique qu’à la sélection. Annuler revient en arrière sur chaque transformation.\nRemarques Les caractères sont comptés tels que vous les voyez : un emoji ou une lettre accentuée compte pour un, même s’il occupe plusieurs unités de code en UTF-16. Les mots et les phrases sont détectés par la segmentation de texte intégrée à votre navigateur, qui gère la ponctuation, les nombres et la plupart des langues. Le temps de lecture suppose 225 mots par minute et le temps de parole 150 mots par minute. « Majuscules Initiales » suit les règles anglaises du Title Case : les mots courts comme « and », « of » et « the » restent en minuscules et les acronymes comme API ne sont pas modifiés. Confidentialité Votre texte ne quitte jamais le navigateur. Il est conservé dans le stockage local pour ne pas être perdu au rechargement ; utilisez Effacer pour le supprimer.\n","permalink":"https://www.softinbit.com/fr/tools/text-analyzer/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eSaisissez ou collez du texte et les statistiques se mettent à jour instantanément : caractères (avec et sans espaces), mots, mots uniques, lignes, phrases, paragraphes, taille en octets UTF-8, ainsi que les temps de lecture et de parole estimés. Le panneau \u003cstrong\u003eMots les plus fréquents\u003c/strong\u003e affiche les mots qui reviennent le plus, en ignorant si vous le souhaitez les mots vides courants de l’anglais.\u003c/p\u003e\n\u003cp\u003eUn clic réécrit le texte :\u003c/p\u003e","title":"Analyseur de texte et convertisseur de casse"},{"content":"Ce que fait l’outil Rédigez ou collez du Markdown à gauche et voyez le rendu à droite pendant la saisie. Le moteur de rendu prend en charge le GitHub Flavored Markdown : tableaux, listes de tâches (- [x] done), blocs de code délimités, texte barré et liens automatiques.\nLe défilement synchronisé garde l’aperçu sur le bloc que vous modifiez, même avec de longs paragraphes renvoyés à la ligne. Faire défiler l’aperçu déplace aussi l’éditeur. Dispositions éditeur, partagée ou aperçu, plus le bouton Focus pour une vue plein écran sans distraction. Export : copiez le HTML rendu, téléchargez le fichier .md ou une page .html autonome avec une mise en forme lisible, en mode clair comme en mode sombre. Nombre de mots et temps de lecture du texte rendu, pas de la syntaxe Markdown. Ouvrez ou déposez un fichier .md pour prévisualiser un README avant de le pousser. Sûr par défaut Le Markdown peut contenir du HTML brut. Chaque rendu passe par DOMPurify, qui supprime les scripts, les gestionnaires d’événements et les liens javascript: : coller un README non fiable ne peut donc pas exécuter de code sur cette page. Le HTML copié et téléchargé est assaini de la même façon.\nMode d’emploi Saisissez, collez, ouvrez ou déposez du Markdown dans l’éditeur (ou cliquez sur Exemple). Activez Sauts de ligne si les retours à la ligne simples doivent devenir des \u0026lt;br\u0026gt;, comme dans les commentaires GitHub. Copiez ou téléchargez le résultat. Le rendu utilise marked. De petites différences avec GitHub sont possibles : par exemple, les extensions propres à GitHub comme les alertes, les notes de bas de page et les formules mathématiques s’affichent en Markdown brut.\nConfidentialité Votre document reste dans votre navigateur et est conservé dans le stockage local. Les images ou liens que vous ajoutez sont chargés par votre navigateur comme sur n’importe quelle page web.\n","permalink":"https://www.softinbit.com/fr/tools/markdown-preview/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eRédigez ou collez du Markdown à gauche et voyez le rendu à droite pendant la saisie. Le moteur de rendu prend en charge le GitHub Flavored Markdown : tableaux, listes de tâches (\u003ccode\u003e- [x] done\u003c/code\u003e), blocs de code délimités, texte barré et liens automatiques.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLe défilement synchronisé\u003c/strong\u003e garde l’aperçu sur le bloc que vous modifiez, même avec de longs paragraphes renvoyés à la ligne. Faire défiler l’aperçu déplace aussi l’éditeur.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDispositions éditeur, partagée ou aperçu\u003c/strong\u003e, plus le bouton Focus pour une vue plein écran sans distraction.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExport\u003c/strong\u003e : copiez le HTML rendu, téléchargez le fichier \u003ccode\u003e.md\u003c/code\u003e ou une page \u003ccode\u003e.html\u003c/code\u003e autonome avec une mise en forme lisible, en mode clair comme en mode sombre.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNombre de mots\u003c/strong\u003e et temps de lecture du texte rendu, pas de la syntaxe Markdown.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eOuvrez ou déposez\u003c/strong\u003e un fichier \u003ccode\u003e.md\u003c/code\u003e pour prévisualiser un README avant de le pousser.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"sûr-par-défaut\"\u003eSûr par défaut\u003c/h2\u003e\n\u003cp\u003eLe Markdown peut contenir du HTML brut. Chaque rendu passe par \u003ca href=\"https://github.com/cure53/DOMPurify\"\u003eDOMPurify\u003c/a\u003e, qui supprime les scripts, les gestionnaires d’événements et les liens \u003ccode\u003ejavascript:\u003c/code\u003e : coller un README non fiable ne peut donc pas exécuter de code sur cette page. Le HTML copié et téléchargé est assaini de la même façon.\u003c/p\u003e","title":"Aperçu Markdown"},{"content":"Ce que fait l’outil ASP.NET Core lit appsettings.json et les variables d’environnement dans le même arbre de configuration. Les sections imbriquées deviennent des clés comme Logging:LogLevel:Default, et les éléments de tableau reçoivent un index (Cors:AllowedOrigins:0). Dans les noms de variables d’environnement, le : s’écrit __. Cet outil effectue cette conversion dans les deux sens, en direct pendant la saisie.\nFonctionnalités Formats de sortie : .env, environment: de Docker Compose, liste env: de Kubernetes, JSON Azure App Service pour « Advanced edit » (name / value / slotSetting), $env: PowerShell, export bash, launchSettings.json, commandes dotnet user-secrets set et clés .NET simples. Lit de vrais fichiers : les commentaires et virgules finales dans appsettings.json sont acceptés. Les clés en double sont signalées avec leur numéro de ligne, car .NET refuse de les charger. Préfixes : ajoutez un préfixe comme MYAPP_ pour AddEnvironmentVariables(\u0026quot;MYAPP_\u0026quot;). Dans le sens inverse, les variables sans ce préfixe sont ignorées, exactement comme le fait le fournisseur. Détection des secrets : les clés comme Password, Secret, ApiKey, Token, SigningKey et tout ce qui se trouve sous ConnectionStrings sont signalés. Ils peuvent être omis ou remplacés par des entrées Kubernetes secretKeyRef, des références Key Vault ou des espaces réservés ${VAR}. Sens inverse : collez des variables dans l’un des formats ci-dessus, même mélangés. Vous récupérez appsettings.json avec les tableaux, la casse fusionnée et, en option, les types nombre/booléen. Les préfixes Azure de type SQLCONNSTR_ sont associés à ConnectionStrings. Particularités des plateformes : $ est échappé en $$ pour Compose. Les noms que bash ne peut pas exporter sont signalés, de même que les points dans les noms, qu’Azure App Service sous Linux transforme en _. Comment l’utiliser Collez votre appsettings.json et choisissez un format, puis copiez ou téléchargez le résultat. Inverser renvoie la sortie dans l’autre sens pour que vous puissiez vérifier l’aller-retour.\nConfidentialité Tout s’exécute dans votre navigateur. Votre saisie n’est conservée dans le stockage local que si elle ne contient rien qui ressemble à un secret.\n","permalink":"https://www.softinbit.com/fr/tools/appsettings-env/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eASP.NET Core lit \u003ccode\u003eappsettings.json\u003c/code\u003e et les variables d’environnement dans le même arbre de configuration. Les sections imbriquées deviennent des clés comme \u003ccode\u003eLogging:LogLevel:Default\u003c/code\u003e, et les éléments de tableau reçoivent un index (\u003ccode\u003eCors:AllowedOrigins:0\u003c/code\u003e). Dans les noms de variables d’environnement, le \u003ccode\u003e:\u003c/code\u003e s’écrit \u003ccode\u003e__\u003c/code\u003e. Cet outil effectue cette conversion dans les deux sens, en direct pendant la saisie.\u003c/p\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFormats de sortie\u003c/strong\u003e : \u003ccode\u003e.env\u003c/code\u003e, \u003ccode\u003eenvironment:\u003c/code\u003e de Docker Compose, liste \u003ccode\u003eenv:\u003c/code\u003e de Kubernetes, JSON Azure App Service pour « Advanced edit » (\u003ccode\u003ename\u003c/code\u003e / \u003ccode\u003evalue\u003c/code\u003e / \u003ccode\u003eslotSetting\u003c/code\u003e), \u003ccode\u003e$env:\u003c/code\u003e PowerShell, \u003ccode\u003eexport\u003c/code\u003e bash, \u003ccode\u003elaunchSettings.json\u003c/code\u003e, commandes \u003ccode\u003edotnet user-secrets set\u003c/code\u003e et clés .NET simples.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLit de vrais fichiers\u003c/strong\u003e : les commentaires et virgules finales dans \u003ccode\u003eappsettings.json\u003c/code\u003e sont acceptés. Les clés en double sont signalées avec leur numéro de ligne, car .NET refuse de les charger.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePréfixes\u003c/strong\u003e : ajoutez un préfixe comme \u003ccode\u003eMYAPP_\u003c/code\u003e pour \u003ccode\u003eAddEnvironmentVariables(\u0026quot;MYAPP_\u0026quot;)\u003c/code\u003e. Dans le sens inverse, les variables sans ce préfixe sont ignorées, exactement comme le fait le fournisseur.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDétection des secrets\u003c/strong\u003e : les clés comme \u003ccode\u003ePassword\u003c/code\u003e, \u003ccode\u003eSecret\u003c/code\u003e, \u003ccode\u003eApiKey\u003c/code\u003e, \u003ccode\u003eToken\u003c/code\u003e, \u003ccode\u003eSigningKey\u003c/code\u003e et tout ce qui se trouve sous \u003ccode\u003eConnectionStrings\u003c/code\u003e sont signalés. Ils peuvent être omis ou remplacés par des entrées Kubernetes \u003ccode\u003esecretKeyRef\u003c/code\u003e, des références Key Vault ou des espaces réservés \u003ccode\u003e${VAR}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSens inverse\u003c/strong\u003e : collez des variables dans l’un des formats ci-dessus, même mélangés. Vous récupérez \u003ccode\u003eappsettings.json\u003c/code\u003e avec les tableaux, la casse fusionnée et, en option, les types nombre/booléen. Les préfixes Azure de type \u003ccode\u003eSQLCONNSTR_\u003c/code\u003e sont associés à \u003ccode\u003eConnectionStrings\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eParticularités des plateformes\u003c/strong\u003e : \u003ccode\u003e$\u003c/code\u003e est échappé en \u003ccode\u003e$$\u003c/code\u003e pour Compose. Les noms que bash ne peut pas exporter sont signalés, de même que les points dans les noms, qu’Azure App Service sous Linux transforme en \u003ccode\u003e_\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003cp\u003eCollez votre \u003ccode\u003eappsettings.json\u003c/code\u003e et choisissez un format, puis copiez ou téléchargez le résultat. \u003cstrong\u003eInverser\u003c/strong\u003e renvoie la sortie dans l’autre sens pour que vous puissiez vérifier l’aller-retour.\u003c/p\u003e","title":"appsettings.json ⇄ variables d’environnement"},{"content":"Ce que fait l’outil Saisissez un réseau : tout est calculé pendant que vous tapez. L’entrée peut être un bloc CIDR (10.0.0.0/16, 2001:db8::/48), une adresse avec un masque de réseau (192.168.1.10 255.255.255.0 ; un masque générique comme 0.0.0.255 fonctionne aussi) ou une plage (10.0.0.5 - 10.0.0.77), convertie en la liste minimale de blocs CIDR.\nDétails : réseau, broadcast, premier et dernier hôte utilisable, nombre d’hôtes (y compris les 5 adresses qu’Azure et AWS réservent par sous-réseau), masque de réseau, masque générique, zone DNS inverse et vue binaire avec les bits réseau et hôte colorés. Type d’adresse : privée (RFC 1918), CGNAT (100.64.0.0/10), loopback, lien local, multicast, plages de documentation, ULA IPv6, lien local et unicast global, chacun avec sa RFC. Test d’appartenance : 10.20.37.4 se trouve-t-il dans ce réseau ? Les adresses de réseau et de broadcast sont signalées. IPv6 bien géré : calcul sur 128 bits, compression :: selon la RFC 5952, forme développée, identifiants de zone et adresses IPv4 mappées. Découper et planifier L’onglet Découper divise un réseau en N sous-réseaux égaux, en sous-réseaux d’un préfixe donné ou selon un nombre d’hôtes (VLSM) : indiquez web 200, GatewaySubnet /27, etc. ; les blocs sont attribués du plus grand au plus petit et l’espace restant est affiché. Les résultats s’exportent en CSV.\nChevauchements et espace libre vérifie une liste de CIDR (réseaux Docker, routes VPN, VNets appairés, plages Kubernetes) à la recherche de conflits, les fusionne en un ensemble minimal de blocs et liste les blocs libres restants dans un réseau parent.\nConfidentialité Tout est calculé dans votre navigateur. Vos dernières saisies sont conservées uniquement dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/cidr-calculator/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eSaisissez un réseau : tout est calculé pendant que vous tapez. L’entrée peut être un bloc CIDR (\u003ccode\u003e10.0.0.0/16\u003c/code\u003e, \u003ccode\u003e2001:db8::/48\u003c/code\u003e), une adresse avec un masque de réseau (\u003ccode\u003e192.168.1.10 255.255.255.0\u003c/code\u003e ; un masque générique comme \u003ccode\u003e0.0.0.255\u003c/code\u003e fonctionne aussi) ou une plage (\u003ccode\u003e10.0.0.5 - 10.0.0.77\u003c/code\u003e), convertie en la liste minimale de blocs CIDR.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDétails\u003c/strong\u003e : réseau, broadcast, premier et dernier hôte utilisable, nombre d’hôtes (y compris les 5 adresses qu’Azure et AWS réservent par sous-réseau), masque de réseau, masque générique, zone DNS inverse et vue binaire avec les bits réseau et hôte colorés.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType d’adresse\u003c/strong\u003e : privée (RFC 1918), CGNAT (100.64.0.0/10), loopback, lien local, multicast, plages de documentation, ULA IPv6, lien local et unicast global, chacun avec sa RFC.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTest d’appartenance\u003c/strong\u003e : \u003ccode\u003e10.20.37.4\u003c/code\u003e se trouve-t-il dans ce réseau ? Les adresses de réseau et de broadcast sont signalées.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIPv6 bien géré\u003c/strong\u003e : calcul sur 128 bits, compression \u003ccode\u003e::\u003c/code\u003e selon la RFC 5952, forme développée, identifiants de zone et adresses IPv4 mappées.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"découper-et-planifier\"\u003eDécouper et planifier\u003c/h2\u003e\n\u003cp\u003eL’onglet \u003cstrong\u003eDécouper\u003c/strong\u003e divise un réseau en N sous-réseaux égaux, en sous-réseaux d’un préfixe donné ou selon un nombre d’hôtes (VLSM) : indiquez \u003ccode\u003eweb 200\u003c/code\u003e, \u003ccode\u003eGatewaySubnet /27\u003c/code\u003e, etc. ; les blocs sont attribués du plus grand au plus petit et l’espace restant est affiché. Les résultats s’exportent en CSV.\u003c/p\u003e","title":"Calculateur CIDR / de sous-réseaux"},{"content":"Ce que fait l’outil Une référence où vous trouvez plus vite qu’en tapant une requête dans un moteur de recherche. Tous les codes du registre de l’IANA (de 1xx à 5xx, d’après la RFC 9110 actuelle et ses extensions) sont listés, ainsi que des codes non officiels très répandus comme 499 Client Closed Request de nginx et les erreurs 52x de Cloudflare, clairement signalés comme non officiels.\nPour chaque code, vous obtenez :\nLa signification et quand l’utiliser / causes fréquentes, rédigées pour celles et ceux qui conçoivent et déboguent des API. Mis en cache par défaut : si les caches peuvent le stocker sans Cache-Control explicite (la liste de la RFC 9110 §15.1). Conseils de nouvelle tentative : réessai sans risque, réessai après correction, ou jamais, y compris la manière dont Polly et Microsoft.Extensions.Http.Resilience le traitent. ASP.NET Core : l’appel TypedResults / Results, la méthode d’aide de ControllerBase, la constante StatusCodes et le nom dans l’enum HttpStatusCode, avec des pièges comme le limiteur de débit qui rejette en 503 sauf configuration, ou IIS qui répond 404.13 aux envois trop volumineux. Spécification : un lien vers la section exacte de la RFC. Comment l’utiliser Tapez un nombre (404), un préfixe (42, 5xx) ou des mots (timeout, redirect, upload). Filtrez par classe, affichez uniquement les codes IANA, les codes mis en cache ou ceux que l’on peut réessayer. Appuyez sur Entrée pour ouvrir le premier résultat et utilisez les flèches dans la liste. Chaque code a son propre lien, par exemple /tools/http-status/#429, qui l’ouvre et le met en évidence. Copier le C# (ou Ctrl+Entrée) copie l’extrait du code sélectionné ; la liste filtrée s’exporte en CSV ou en JSON.\nConfidentialité La référence est intégrée à la page. Rien de ce que vous recherchez n’est envoyé ; seules votre dernière recherche et vos filtres sont conservés dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/http-status/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eUne référence où vous trouvez plus vite qu’en tapant une requête dans un moteur de recherche. Tous les codes du registre de l’IANA (de 1xx à 5xx, d’après la RFC 9110 actuelle et ses extensions) sont listés, ainsi que des codes non officiels très répandus comme \u003ccode\u003e499 Client Closed Request\u003c/code\u003e de nginx et les erreurs \u003ccode\u003e52x\u003c/code\u003e de Cloudflare, clairement signalés comme non officiels.\u003c/p\u003e\n\u003cp\u003ePour chaque code, vous obtenez :\u003c/p\u003e","title":"Codes de statut HTTP"},{"content":"Ce que fait l’outil Collez deux listes et obtenez quatre résultats à la fois : les éléments seulement dans A, seulement dans B, dans les deux (intersection) et l’union. Chaque résultat affiche son nombre d’éléments et peut être copié ou téléchargé séparément. C’est le moyen rapide de répondre à des questions comme « quels identifiants d’utilisateur manquent dans l’export ? » ou « quels paquets les deux projets référencent-ils ? ».\nDétection du séparateur : un élément par ligne, ou séparés par des virgules, points-virgules, tabulations ou espaces. Le mode automatique choisit le bon séparateur pour chaque liste et vous indique lequel il a retenu. Rogner les espaces, ignorer la casse et ignorer les éléments vides, pour que des espaces parasites ou des majuscules ne créent pas de fausses différences. Supprimer les doublons dans chaque résultat, avec le nombre de doublons trouvés dans chaque liste. Tri naturel, pour que item2 passe avant item10. Format de sortie : un par ligne, séparé par des virgules, une liste SQL IN (...) entre apostrophes ou un tableau JSON, prêt à coller dans une requête ou dans du code. Mode d’emploi Collez la première liste dans Liste A et la seconde dans Liste B (ou ouvrez un fichier dans chacune). Ajustez les options ; les résultats se mettent à jour pendant la saisie. Utilisez Copier ou Télécharger sur le résultat voulu, ou Inverser pour permuter les listes. Lorsque la casse est ignorée, un élément est affiché tel qu’il a été écrit la première fois.\nConfidentialité Les deux listes sont comparées dans votre navigateur et conservées uniquement dans le stockage local pour survivre à un rechargement. Rien n’est envoyé.\n","permalink":"https://www.softinbit.com/fr/tools/list-compare/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez deux listes et obtenez quatre résultats à la fois : les éléments \u003cstrong\u003eseulement dans A\u003c/strong\u003e, \u003cstrong\u003eseulement dans B\u003c/strong\u003e, \u003cstrong\u003edans les deux\u003c/strong\u003e (intersection) et l’\u003cstrong\u003eunion\u003c/strong\u003e. Chaque résultat affiche son nombre d’éléments et peut être copié ou téléchargé séparément. C’est le moyen rapide de répondre à des questions comme « quels identifiants d’utilisateur manquent dans l’export ? » ou « quels paquets les deux projets référencent-ils ? ».\u003c/p\u003e","title":"Comparateur de listes"},{"content":"Ce qui distingue ce diff La plupart des comparateurs en ligne affichent un mur de rouge et de vert et vous laissent faire défiler. Celui-ci est conçu pour relire de vrais changements :\nPassez d’un changement à l’autre avec F7 / Maj+F7, Alt+↓ / Alt+↑ ou j / k. Le compteur indique toujours où vous êtes (« 3 / 12 »). Barre de vue d’ensemble à droite montrant tous les changements du document d’un coup d’œil. Cliquez sur une marque pour y aller. Surlignage au mot ou au caractère dans les lignes modifiées : une variable renommée ne ressemble pas à une ligne réécrite. Fusionnez des blocs : les flèches entre les deux côtés copient un changement à gauche ou à droite, avec annulation. Repliez les lignes inchangées pour vous concentrer sur ce qui a changé, et dépliez n’importe quelle zone d’un clic. Ignorez les espaces, la casse ou les lignes vides quand le bruit de mise en forme masque le vrai changement. Exportez le résultat en diff unifié standard (.patch) compris par git apply. Comment ça marche La comparaison utilise un patience diff : les lignes présentes exactement une fois de chaque côté servent d’ancres, et les écarts entre elles sont comparés avec l’algorithme de Myers. Le résultat se lit comme une personne décrirait le changement, et les gros fichiers de plusieurs dizaines de milliers de lignes se comparent en quelques millisecondes.\nLes fins de ligne sont normalisées avant la comparaison : un fichier enregistré avec des CRLF Windows et le même fichier en LF Unix n’affichent pas toutes les lignes comme modifiées. Une note apparaît quand les fins de ligne diffèrent.\nConfidentialité Les deux textes restent dans votre navigateur. Rien n’est envoyé ; vos dernières saisies sont conservées dans le stockage local du navigateur pour qu’un rechargement ne vous fasse rien perdre. Utilisez Effacer pour les supprimer.\n","permalink":"https://www.softinbit.com/fr/tools/text-compare/","summary":"\u003ch2 id=\"ce-qui-distingue-ce-diff\"\u003eCe qui distingue ce diff\u003c/h2\u003e\n\u003cp\u003eLa plupart des comparateurs en ligne affichent un mur de rouge et de vert et vous laissent faire défiler. Celui-ci est conçu pour relire de vrais changements :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePassez d’un changement à l’autre\u003c/strong\u003e avec \u003ckbd\u003eF7\u003c/kbd\u003e / \u003ckbd\u003eMaj\u003c/kbd\u003e+\u003ckbd\u003eF7\u003c/kbd\u003e, \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003e↓\u003c/kbd\u003e / \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003e↑\u003c/kbd\u003e ou \u003ckbd\u003ej\u003c/kbd\u003e / \u003ckbd\u003ek\u003c/kbd\u003e. Le compteur indique toujours où vous êtes (« 3 / 12 »).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBarre de vue d’ensemble\u003c/strong\u003e à droite montrant tous les changements du document d’un coup d’œil. Cliquez sur une marque pour y aller.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSurlignage au mot ou au caractère\u003c/strong\u003e dans les lignes modifiées : une variable renommée ne ressemble pas à une ligne réécrite.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFusionnez des blocs\u003c/strong\u003e : les flèches entre les deux côtés copient un changement à gauche ou à droite, avec annulation.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRepliez les lignes inchangées\u003c/strong\u003e pour vous concentrer sur ce qui a changé, et dépliez n’importe quelle zone d’un clic.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIgnorez les espaces, la casse ou les lignes vides\u003c/strong\u003e quand le bruit de mise en forme masque le vrai changement.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExportez\u003c/strong\u003e le résultat en diff unifié standard (\u003ccode\u003e.patch\u003c/code\u003e) compris par \u003ccode\u003egit apply\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-ça-marche\"\u003eComment ça marche\u003c/h2\u003e\n\u003cp\u003eLa comparaison utilise un \u003cem\u003epatience diff\u003c/em\u003e : les lignes présentes exactement une fois de chaque côté servent d’ancres, et les écarts entre elles sont comparés avec l’algorithme de Myers. Le résultat se lit comme une personne décrirait le changement, et les gros fichiers de plusieurs dizaines de milliers de lignes se comparent en quelques millisecondes.\u003c/p\u003e","title":"Comparateur de texte"},{"content":"Ce que fait l’outil Gzip est partout : réponses HTTP, archives de logs, files de messages et blobs Base64 dans du JSON ou des bases de données. Cet outil compresse et décompresse avec les API intégrées au navigateur, CompressionStream et DecompressionStream.\nTrois formats : gzip (RFC 1952, .gz), deflate avec un en-tête zlib (RFC 1950, ce que la plupart des bibliothèques appellent « deflate ») et deflate-raw (RFC 1951, utilisé dans les fichiers ZIP et certaines API). Le mode texte compresse au fil de la saisie et affiche le résultat en Base64. Pour décompresser, collez du Base64 (H4sI...) ou de l’hex (1f8b...) ; Détection automatique reconnaît le format grâce aux octets d’en-tête. Le mode fichier compresse n’importe quel fichier en .gz et enregistre le nom et la date d’origine dans l’en-tête gzip, exactement comme la commande gzip : gunzip -N restaure ainsi le nom. Déposer un fichier .gz le décompresse et réutilise le nom enregistré. Statistiques : taille d’origine et compressée, ratio et espace gagné. Erreurs claires : un mauvais format, des données tronquées ou des données parasites en fin de flux sont signalés comme tels. Comment l’utiliser Choisissez Texte ou Fichier, sélectionnez un format (gzip est le choix habituel), puis saisissez, collez ou déposez. Copiez le Base64 avec Ctrl+Entrée ou téléchargez les octets bruts.\nLimites L’API du navigateur n’expose pas les niveaux de compression : les résultats sont proches de ceux de gzip -9, sans être toujours identiques à l’octet près. Les navigateurs très anciens sans CompressionStream ne sont pas pris en charge ; la page vous prévient si le vôtre en fait partie.\nConfidentialité La compression s’effectue localement ; les fichiers ne quittent jamais votre ordinateur. Seule la saisie de texte est conservée dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/gzip/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eGzip est partout : réponses HTTP, archives de logs, files de messages et blobs Base64 dans du JSON ou des bases de données. Cet outil compresse et décompresse avec les API intégrées au navigateur, \u003ccode\u003eCompressionStream\u003c/code\u003e et \u003ccode\u003eDecompressionStream\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTrois formats\u003c/strong\u003e : \u003ccode\u003egzip\u003c/code\u003e (RFC 1952, \u003ccode\u003e.gz\u003c/code\u003e), \u003ccode\u003edeflate\u003c/code\u003e avec un en-tête zlib (RFC 1950, ce que la plupart des bibliothèques appellent « deflate ») et \u003ccode\u003edeflate-raw\u003c/code\u003e (RFC 1951, utilisé dans les fichiers ZIP et certaines API).\u003c/li\u003e\n\u003cli\u003eLe \u003cstrong\u003emode texte\u003c/strong\u003e compresse au fil de la saisie et affiche le résultat en Base64. Pour décompresser, collez du Base64 (\u003ccode\u003eH4sI...\u003c/code\u003e) ou de l’hex (\u003ccode\u003e1f8b...\u003c/code\u003e) ; \u003cstrong\u003eDétection automatique\u003c/strong\u003e reconnaît le format grâce aux octets d’en-tête.\u003c/li\u003e\n\u003cli\u003eLe \u003cstrong\u003emode fichier\u003c/strong\u003e compresse n’importe quel fichier en \u003ccode\u003e.gz\u003c/code\u003e et enregistre le nom et la date d’origine dans l’en-tête gzip, exactement comme la commande \u003ccode\u003egzip\u003c/code\u003e : \u003ccode\u003egunzip -N\u003c/code\u003e restaure ainsi le nom. Déposer un fichier \u003ccode\u003e.gz\u003c/code\u003e le décompresse et réutilise le nom enregistré.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eStatistiques\u003c/strong\u003e : taille d’origine et compressée, ratio et espace gagné.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErreurs claires\u003c/strong\u003e : un mauvais format, des données tronquées ou des données parasites en fin de flux sont signalés comme tels.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003cp\u003eChoisissez \u003cstrong\u003eTexte\u003c/strong\u003e ou \u003cstrong\u003eFichier\u003c/strong\u003e, sélectionnez un format (gzip est le choix habituel), puis saisissez, collez ou déposez. Copiez le Base64 avec \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEntrée\u003c/kbd\u003e ou téléchargez les octets bruts.\u003c/p\u003e","title":"Compresser / décompresser en Gzip"},{"content":"Ce qu’il fait Déposez une image ou tout un lot, choisissez un format, et chaque fichier est converti immédiatement. La liste indique pour chaque image les dimensions d’origine et les nouvelles, la taille de fichier d’origine et la nouvelle, le gain (ou la perte) obtenu, ainsi qu’un total pour le lot.\nFormats : PNG, JPEG et WebP, plus AVIF lorsque votre navigateur sait l’encoder (le bouton n’apparaît que dans ce cas). Curseur de qualité pour JPEG, WebP et AVIF. Modifier un réglage reconvertit automatiquement le lot. Redimensionnement à une largeur et/ou une hauteur maximale. Les proportions sont toujours conservées et les images ne sont jamais agrandies. Les fortes réductions se font par étapes pour un résultat plus net. La couleur d’arrière-plan remplace la transparence lors d’une conversion en JPEG (qui n’a pas de canal alpha), ou pour n’importe quel format avec Remplir la transparence. Téléchargez les fichiers un par un ou tous à la fois. Comment l’utiliser Déposez des images sur la page, collez une capture d’écran ou cliquez sur la zone de dépôt pour choisir des fichiers. Choisissez le format de sortie et ajustez la qualité ou la taille. Téléchargez les résultats. Bon à savoir La conversion utilise les encodeurs de votre navigateur : les résultats et les formats que vous pouvez ouvrir varient donc légèrement d’un navigateur à l’autre. Les métadonnées, comme les données EXIF de l’appareil photo et la position GPS, ne sont pas copiées dans le nouveau fichier. Les photos sont d’abord pivotées selon leur orientation EXIF. Les GIF et WebP animés sont convertis en une seule image fixe. Un PNG sans perte réenregistré en PNG n’est souvent pas plus petit ; WebP ou AVIF le sont généralement. Confidentialité Les images sont décodées et encodées localement sur un canvas. Elles ne sont jamais envoyées.\n","permalink":"https://www.softinbit.com/fr/tools/image-converter/","summary":"\u003ch2 id=\"ce-quil-fait\"\u003eCe qu’il fait\u003c/h2\u003e\n\u003cp\u003eDéposez une image ou tout un lot, choisissez un format, et chaque fichier est converti immédiatement. La liste indique pour chaque image les dimensions d’origine et les nouvelles, la taille de fichier d’origine et la nouvelle, le gain (ou la perte) obtenu, ainsi qu’un total pour le lot.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFormats\u003c/strong\u003e : PNG, JPEG et WebP, plus AVIF lorsque votre navigateur sait l’encoder (le bouton n’apparaît que dans ce cas).\u003c/li\u003e\n\u003cli\u003eCurseur de \u003cstrong\u003equalité\u003c/strong\u003e pour JPEG, WebP et AVIF. Modifier un réglage reconvertit automatiquement le lot.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRedimensionnement\u003c/strong\u003e à une largeur et/ou une hauteur maximale. Les proportions sont toujours conservées et les images ne sont jamais agrandies. Les fortes réductions se font par étapes pour un résultat plus net.\u003c/li\u003e\n\u003cli\u003eLa \u003cstrong\u003ecouleur d’arrière-plan\u003c/strong\u003e remplace la transparence lors d’une conversion en JPEG (qui n’a pas de canal alpha), ou pour n’importe quel format avec \u003cstrong\u003eRemplir la transparence\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTéléchargez\u003c/strong\u003e les fichiers un par un ou tous à la fois.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eDéposez des images sur la page, collez une capture d’écran ou cliquez sur la zone de dépôt pour choisir des fichiers.\u003c/li\u003e\n\u003cli\u003eChoisissez le format de sortie et ajustez la qualité ou la taille.\u003c/li\u003e\n\u003cli\u003eTéléchargez les résultats.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"bon-à-savoir\"\u003eBon à savoir\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLa conversion utilise les encodeurs de votre navigateur : les résultats et les formats que vous pouvez ouvrir varient donc légèrement d’un navigateur à l’autre.\u003c/li\u003e\n\u003cli\u003eLes métadonnées, comme les données EXIF de l’appareil photo et la position GPS, ne sont pas copiées dans le nouveau fichier. Les photos sont d’abord pivotées selon leur orientation EXIF.\u003c/li\u003e\n\u003cli\u003eLes GIF et WebP animés sont convertis en une seule image fixe.\u003c/li\u003e\n\u003cli\u003eUn PNG sans perte réenregistré en PNG n’est souvent pas plus petit ; WebP ou AVIF le sont généralement.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"confidentialité\"\u003eConfidentialité\u003c/h2\u003e\n\u003cp\u003eLes images sont décodées et encodées localement sur un canvas. Elles ne sont jamais envoyées.\u003c/p\u003e","title":"Convertisseur d’images"},{"content":"Ce que fait l’outil Saisissez un nombre dans n’importe quel champ (décimal, hexadécimal, binaire, octal ou une base personnalisée de 2 à 36) et les autres se mettent à jour pendant la saisie.\nToutes tailles : la conversion utilise le BigInt de JavaScript, si bien que les clés de 128 bits, les identifiants de 64 bits et les nombres de 30 chiffres sont convertis exactement, sans l’arrondi des convertisseurs à virgule flottante. Collez les valeurs telles qu’elles apparaissent dans le code : les préfixes 0x, 0b et 0o, les séparateurs comme 1_000_000, DEAD BEEF ou 1,234,567 et un signe moins initial sont reconnus. Un préfixe l’emporte sur le champ : coller 0xFF dans le champ décimal fonctionne donc aussi. Groupement des chiffres dans la sortie : hex et binaire par groupes de quatre, décimal avec séparateurs de milliers. Complément à deux sur 8, 16, 32 et 64 bits, ou automatiquement sur la plus petite largeur qui convient. Vous voyez l’interprétation signée et non signée, le motif hex et binaire complété, et les octets dans l’ordre big-endian et little-endian. Par exemple, -1 sur 8 bits vaut 0xFF, et 0xFFFFFFFF lu comme int32 vaut -1. Grille de bits : cliquez sur un bit pour l’inverser et regardez chaque représentation changer. Le bit de signe est signalé. Des erreurs précises comme Chiffre invalide « 9 » à la position 4 pour la base 8. Mode d’emploi Commencez à taper dans n’importe quel champ, ou cliquez sur Exemple pour parcourir des valeurs d’exemple. Utilisez Copier à côté d’un champ pour copier cette représentation.\nConfidentialité Toute la conversion a lieu dans votre navigateur. Rien n’est envoyé ; votre dernière valeur et vos réglages sont mémorisés sur cet appareil.\n","permalink":"https://www.softinbit.com/fr/tools/number-base/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eSaisissez un nombre dans n’importe quel champ (décimal, hexadécimal, binaire, octal ou une base personnalisée de 2 à 36) et les autres se mettent à jour pendant la saisie.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eToutes tailles\u003c/strong\u003e : la conversion utilise le \u003ccode\u003eBigInt\u003c/code\u003e de JavaScript, si bien que les clés de 128 bits, les identifiants de 64 bits et les nombres de 30 chiffres sont convertis exactement, sans l’arrondi des convertisseurs à virgule flottante.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCollez les valeurs telles qu’elles apparaissent dans le code\u003c/strong\u003e : les préfixes \u003ccode\u003e0x\u003c/code\u003e, \u003ccode\u003e0b\u003c/code\u003e et \u003ccode\u003e0o\u003c/code\u003e, les séparateurs comme \u003ccode\u003e1_000_000\u003c/code\u003e, \u003ccode\u003eDEAD BEEF\u003c/code\u003e ou \u003ccode\u003e1,234,567\u003c/code\u003e et un signe moins initial sont reconnus. Un préfixe l’emporte sur le champ : coller \u003ccode\u003e0xFF\u003c/code\u003e dans le champ décimal fonctionne donc aussi.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGroupement des chiffres\u003c/strong\u003e dans la sortie : hex et binaire par groupes de quatre, décimal avec séparateurs de milliers.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eComplément à deux\u003c/strong\u003e sur 8, 16, 32 et 64 bits, ou automatiquement sur la plus petite largeur qui convient. Vous voyez l’interprétation signée et non signée, le motif hex et binaire complété, et les octets dans l’ordre big-endian et little-endian. Par exemple, \u003ccode\u003e-1\u003c/code\u003e sur 8 bits vaut \u003ccode\u003e0xFF\u003c/code\u003e, et \u003ccode\u003e0xFFFFFFFF\u003c/code\u003e lu comme \u003ccode\u003eint32\u003c/code\u003e vaut \u003ccode\u003e-1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGrille de bits\u003c/strong\u003e : cliquez sur un bit pour l’inverser et regardez chaque représentation changer. Le bit de signe est signalé.\u003c/li\u003e\n\u003cli\u003eDes erreurs précises comme \u003cem\u003eChiffre invalide « 9 » à la position 4 pour la base 8\u003c/em\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"mode-demploi\"\u003eMode d’emploi\u003c/h2\u003e\n\u003cp\u003eCommencez à taper dans n’importe quel champ, ou cliquez sur \u003cstrong\u003eExemple\u003c/strong\u003e pour parcourir des valeurs d’exemple. Utilisez \u003cstrong\u003eCopier\u003c/strong\u003e à côté d’un champ pour copier cette représentation.\u003c/p\u003e","title":"Convertisseur de bases numériques"},{"content":"Ce que fait l’outil Collez une couleur dans n’importe quel format et obtenez tous les autres, chacun avec un bouton de copie : HEX, RGB, HSL, HWB, OKLCH, OKLab, CIE Lab/LCH (D50) et color(display-p3 …). L’outil lit et écrit aussi ce qu’utilise le code .NET : Color.FromArgb(…) (int, ARGB ou alpha + couleur nommée), Color.FromRgb, Colors.Red, le texte Color [A=…, R=…] produit par ToString(), 0xAARRGGBB, les entiers signés de ToArgb() et le #AARRGGBB de XAML. Le commutateur hex à 8 chiffres indique si #xxxxxxxx suit l’ordre CSS ou l’ordre .NET.\nLab, LCH et OKLCH peuvent décrire des couleurs que le sRGB ne peut pas afficher. Elles sont signalées, et les valeurs hex/RGB sont ramenées dans le gamut avec la méthode de CSS Color 4 (réduction de la chroma OKLCH) plutôt que tronquées. Les calculs suivent CSS Color 4 : courbe de transfert sRGB, point blanc D65, adaptation de Bradford vers D50 pour Lab et l’OKLab de Björn Ottosson.\nContraste La couleur saisie est considérée comme le texte, la seconde comme l’arrière-plan. Vous obtenez le rapport de contraste WCAG 2.x avec réussite/échec pour AA et AAA (texte normal et grand texte) et pour les composants d’interface (3:1). Le rapport est arrondi vers le bas : une paire affichée à 4.5:1 est donc réellement conforme. La valeur Lc d’APCA n’est donnée qu’à titre indicatif, car elle ne fait pas partie des WCAG 2.x. Les couleurs semi-transparentes sont composées comme un navigateur les dessinerait.\nQuand une paire échoue, l’outil propose les couleurs de texte et d’arrière-plan conformes les plus proches en ne modifiant que la luminosité OKLCH, si bien que la teinte et la chroma restent identiques. Cliquez sur Appliquer pour en utiliser une.\nPalette L’échelle de nuances 50–950 est construite en OKLCH, et votre couleur apparaît inchangée au palier le plus proche. Copiez-la en propriétés personnalisées CSS, en bloc colors Tailwind v3 ou en bloc @theme Tailwind v4.\nConfidentialité Tout s’exécute dans votre navigateur. Les saisies sont stockées uniquement dans le stockage local de votre navigateur.\n","permalink":"https://www.softinbit.com/fr/tools/color-converter/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez une couleur dans n’importe quel format et obtenez tous les autres, chacun avec un bouton de copie : HEX, RGB, HSL, HWB, OKLCH, OKLab, CIE Lab/LCH (D50) et \u003ccode\u003ecolor(display-p3 …)\u003c/code\u003e. L’outil lit et écrit aussi ce qu’utilise le code .NET : \u003ccode\u003eColor.FromArgb(…)\u003c/code\u003e (int, ARGB ou alpha + couleur nommée), \u003ccode\u003eColor.FromRgb\u003c/code\u003e, \u003ccode\u003eColors.Red\u003c/code\u003e, le texte \u003ccode\u003eColor [A=…, R=…]\u003c/code\u003e produit par \u003ccode\u003eToString()\u003c/code\u003e, \u003ccode\u003e0xAARRGGBB\u003c/code\u003e, les entiers signés de \u003ccode\u003eToArgb()\u003c/code\u003e et le \u003ccode\u003e#AARRGGBB\u003c/code\u003e de XAML. Le commutateur \u003cstrong\u003ehex à 8 chiffres\u003c/strong\u003e indique si \u003ccode\u003e#xxxxxxxx\u003c/code\u003e suit l’ordre CSS ou l’ordre .NET.\u003c/p\u003e","title":"Convertisseur de couleurs et vérificateur de contraste"},{"content":"Ce que fait l’outil Collez n’importe quel horodatage ou date et voyez-le dans tous les formats courants à la fois. Le type d’entrée est détecté automatiquement :\nTemps Unix en secondes, millisecondes, microsecondes ou nanosecondes, choisi selon la taille du nombre (les décimales et les valeurs négatives fonctionnent aussi). .NET DateTime.Ticks : intervalles de 100 nanosecondes depuis 0001-01-01, tels que renvoyés par DateTime.UtcNow.Ticks ou DateTimeOffset.UtcTicks. Dates ISO 8601 avec ou sans décalage, y compris les fractions de seconde jusqu’à la nanoseconde et la forme compacte 20240501T123000Z. Dates RFC 2822 telles qu’utilisées dans les en-têtes d’e-mail et HTTP. Si un nombre est ambigu, choisissez le type explicitement dans le menu à côté de la saisie.\nLe tableau de résultats affiche l’UTC, votre heure locale, tout fuseau horaire IANA sélectionné, ISO 8601, RFC 2822, les secondes, millisecondes, microsecondes et nanosecondes Unix, les ticks .NET (la valeur UTC comme la valeur d’heure locale que renverrait DateTime.Now.Ticks), un temps relatif comme « il y a 3 heures », ainsi que le jour de la semaine, le numéro de semaine ISO et le jour de l’année. Chaque ligne a un bouton de copie.\nLes valeurs sont conservées en interne sous forme d’entiers exacts : un horodatage en nanosecondes ou une valeur en ticks se convertit sans les erreurs d’arrondi des convertisseurs à virgule flottante.\nChoisir une date Utilisez le sélecteur de date et d’heure sous le tableau pour convertir dans l’autre sens : choisissez un instant en heure locale, en UTC ou dans le fuseau sélectionné et obtenez son horodatage. Les heures qui tombent dans le trou du passage à l’heure d’été sont décalées vers l’avant, comme le font JavaScript et la plupart des bibliothèques de dates.\nConfidentialité Tout s’exécute dans votre navigateur avec les données de fuseaux horaires intégrées d’Intl. Rien n’est envoyé ; votre dernière saisie et le fuseau horaire choisi sont mémorisés sur cet appareil.\n","permalink":"https://www.softinbit.com/fr/tools/timestamp/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez n’importe quel horodatage ou date et voyez-le dans tous les formats courants à la fois. Le type d’entrée est détecté automatiquement :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTemps Unix\u003c/strong\u003e en secondes, millisecondes, microsecondes ou nanosecondes, choisi selon la taille du nombre (les décimales et les valeurs négatives fonctionnent aussi).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e.NET \u003ccode\u003eDateTime.Ticks\u003c/code\u003e\u003c/strong\u003e : intervalles de 100 nanosecondes depuis 0001-01-01, tels que renvoyés par \u003ccode\u003eDateTime.UtcNow.Ticks\u003c/code\u003e ou \u003ccode\u003eDateTimeOffset.UtcTicks\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDates \u003cstrong\u003eISO 8601\u003c/strong\u003e avec ou sans décalage, y compris les fractions de seconde jusqu’à la nanoseconde et la forme compacte \u003ccode\u003e20240501T123000Z\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDates \u003cstrong\u003eRFC 2822\u003c/strong\u003e telles qu’utilisées dans les en-têtes d’e-mail et HTTP.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSi un nombre est ambigu, choisissez le type explicitement dans le menu à côté de la saisie.\u003c/p\u003e","title":"Convertisseur de timestamp Unix"},{"content":"Ce que fait l’outil Transformez une réponse d’API ou un export JSON en CSV prêt pour un tableur, ou un fichier CSV en JSON. L’aperçu montre exactement comment les lignes et les colonnes sont produites.\nJSON → CSV Chaque clé devient une colonne, même si elle n’apparaît que dans certaines lignes. Les colonnes suivent l’ordre de première apparition des clés. Les objets imbriqués sont aplatis en chemins à points (address.city), ou conservés en texte JSON si vous désactivez l’aplatissement. Les tableaux sont écrits comme chaînes JSON ([\u0026quot;admin\u0026quot;,\u0026quot;billing\u0026quot;]). Les réponses enveloppées fonctionnent : pour {\u0026quot;data\u0026quot;: [ ... ]}, ce sont les lignes de data qui sont utilisées. Guillemets corrects pour les séparateurs, les guillemets, les sauts de ligne et les espaces en début ou en fin de valeur. Virgule, point-virgule, tabulation ou barre verticale, fins de ligne CRLF ou LF et un BOM UTF-8 facultatif pour qu’Excel affiche correctement les caractères accentués. CSV → JSON Analyse conforme à la RFC 4180 : champs entre guillemets, guillemets doublés (\u0026quot;\u0026quot;) et sauts de ligne entre guillemets. Détection automatique du séparateur, ligne d’en-tête activée ou non (sans en-tête, vous obtenez des tableaux). Déduction des types (facultative) : nombres, true/false, cellules vides en null et tableaux/objets JSON dans les cellules. Des valeurs comme 007 restent des chaînes pour ne pas perdre les zéros initiaux. Les chemins à points sont dépliés en objets imbriqués : un CSV créé ici se reconvertit dans le JSON d’origine. Les guillemets non fermés sont signalés avec le numéro de ligne ; les lignes dont le nombre de champs diffère sont listées en avertissement. Confidentialité Tout s’exécute dans votre navigateur et rien n’est envoyé. Votre dernière saisie pour chaque sens est conservée dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/json-to-csv/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eTransformez une réponse d’API ou un export JSON en CSV prêt pour un tableur, ou un fichier CSV en JSON. L’aperçu montre exactement comment les lignes et les colonnes sont produites.\u003c/p\u003e\n\u003ch2 id=\"json--csv\"\u003eJSON → CSV\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChaque clé devient une colonne\u003c/strong\u003e, même si elle n’apparaît que dans certaines lignes. Les colonnes suivent l’ordre de première apparition des clés.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes objets imbriqués sont aplatis\u003c/strong\u003e en chemins à points (\u003ccode\u003eaddress.city\u003c/code\u003e), ou conservés en texte JSON si vous désactivez l’aplatissement. Les tableaux sont écrits comme chaînes JSON (\u003ccode\u003e[\u0026quot;admin\u0026quot;,\u0026quot;billing\u0026quot;]\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes réponses enveloppées fonctionnent\u003c/strong\u003e : pour \u003ccode\u003e{\u0026quot;data\u0026quot;: [ ... ]}\u003c/code\u003e, ce sont les lignes de \u003ccode\u003edata\u003c/code\u003e qui sont utilisées.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGuillemets corrects\u003c/strong\u003e pour les séparateurs, les guillemets, les sauts de ligne et les espaces en début ou en fin de valeur.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eVirgule, point-virgule, tabulation ou barre verticale\u003c/strong\u003e, fins de ligne CRLF ou LF et un \u003cstrong\u003eBOM UTF-8\u003c/strong\u003e facultatif pour qu’Excel affiche correctement les caractères accentués.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"csv--json\"\u003eCSV → JSON\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAnalyse conforme à la RFC 4180\u003c/strong\u003e : champs entre guillemets, guillemets doublés (\u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e) et sauts de ligne entre guillemets.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDétection automatique du séparateur\u003c/strong\u003e, ligne d’en-tête activée ou non (sans en-tête, vous obtenez des tableaux).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDéduction des types\u003c/strong\u003e (facultative) : nombres, \u003ccode\u003etrue\u003c/code\u003e/\u003ccode\u003efalse\u003c/code\u003e, cellules vides en \u003ccode\u003enull\u003c/code\u003e et tableaux/objets JSON dans les cellules. Des valeurs comme \u003ccode\u003e007\u003c/code\u003e restent des chaînes pour ne pas perdre les zéros initiaux.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes chemins à points sont dépliés\u003c/strong\u003e en objets imbriqués : un CSV créé ici se reconvertit dans le JSON d’origine.\u003c/li\u003e\n\u003cli\u003eLes guillemets non fermés sont signalés avec le numéro de ligne ; les lignes dont le nombre de champs diffère sont listées en avertissement.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"confidentialité\"\u003eConfidentialité\u003c/h2\u003e\n\u003cp\u003eTout s’exécute dans votre navigateur et rien n’est envoyé. Votre dernière saisie pour chaque sens est conservée dans le stockage local.\u003c/p\u003e","title":"Convertisseur JSON vers CSV"},{"content":"Ce que fait l’outil Collez du JSON ou du YAML : l’outil reconnaît le format et le convertit dans l’autre pendant la saisie. Vous pouvez aussi imposer le sens. Intervertir réinjecte le résultat comme entrée, ce qui permet de vérifier qu’un aller-retour redonne les mêmes données.\nFonctionnalités Des erreurs exploitables : la ligne et la colonne du problème, l’explication de l’analyseur (« bad indentation of a mapping entry », « duplicated mapping key », « Virgule manquante entre les propriétés ») et un extrait avec un accent circonflexe. Fonctionnalités YAML prises en charge : commentaires, ancres et alias (\u0026amp;defaults / *defaults), clés de fusion (\u0026lt;\u0026lt;: *defaults), chaînes en bloc et repliées, collections en flux et documents multiples séparés par --- (renvoyés sous forme de tableau JSON). Les dates restent telles quelles : 2024-11-05 ressort sous forme de chaîne \u0026quot;2024-11-05\u0026quot;, et non d’horodatage converti. Sortie YAML sûre : les chaînes que YAML lirait sinon comme booléens, nombres ou dates (\u0026quot;yes\u0026quot;, \u0026quot;on\u0026quot;, \u0026quot;0123\u0026quot;, \u0026quot;2024-01-01\u0026quot;) sont mises entre guillemets, et les longues lignes ne sont jamais repliées. Avertissements lorsqu’une valeur ne peut pas être représentée exactement, comme les entiers supérieurs à 253 ou .inf/.nan (JSON ne connaît pas Infinity). Indentation de 2 ou 4 espaces et tri facultatif des clés. Comment l’utiliser Collez ou déposez un fichier .json, .yaml ou .yml, vérifiez le résultat, puis copiez-le ou téléchargez-le. Ctrl+Enter convertit immédiatement.\nConfidentialité La conversion utilise la bibliothèque open source js-yaml chargée dans la page ; vos données sont traitées localement et ne sont jamais envoyées. La dernière entrée est mémorisée dans le stockage local de votre navigateur.\n","permalink":"https://www.softinbit.com/fr/tools/json-yaml/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez du JSON ou du YAML : l’outil reconnaît le format et le convertit dans l’autre pendant la saisie. Vous pouvez aussi imposer le sens. \u003cstrong\u003eIntervertir\u003c/strong\u003e réinjecte le résultat comme entrée, ce qui permet de vérifier qu’un aller-retour redonne les mêmes données.\u003c/p\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDes erreurs exploitables\u003c/strong\u003e : la ligne et la colonne du problème, l’explication de l’analyseur (« bad indentation of a mapping entry », « duplicated mapping key », « Virgule manquante entre les propriétés ») et un extrait avec un accent circonflexe.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFonctionnalités YAML prises en charge\u003c/strong\u003e : commentaires, ancres et alias (\u003ccode\u003e\u0026amp;defaults\u003c/code\u003e / \u003ccode\u003e*defaults\u003c/code\u003e), clés de fusion (\u003ccode\u003e\u0026lt;\u0026lt;: *defaults\u003c/code\u003e), chaînes en bloc et repliées, collections en flux et documents multiples séparés par \u003ccode\u003e---\u003c/code\u003e (renvoyés sous forme de tableau JSON).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes dates restent telles quelles\u003c/strong\u003e : \u003ccode\u003e2024-11-05\u003c/code\u003e ressort sous forme de chaîne \u003ccode\u003e\u0026quot;2024-11-05\u0026quot;\u003c/code\u003e, et non d’horodatage converti.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSortie YAML sûre\u003c/strong\u003e : les chaînes que YAML lirait sinon comme booléens, nombres ou dates (\u003ccode\u003e\u0026quot;yes\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;on\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;0123\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;2024-01-01\u0026quot;\u003c/code\u003e) sont mises entre guillemets, et les longues lignes ne sont jamais repliées.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAvertissements\u003c/strong\u003e lorsqu’une valeur ne peut pas être représentée exactement, comme les entiers supérieurs à 2\u003csup\u003e53\u003c/sup\u003e ou \u003ccode\u003e.inf\u003c/code\u003e/\u003ccode\u003e.nan\u003c/code\u003e (JSON ne connaît pas Infinity).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIndentation de 2 ou 4 espaces\u003c/strong\u003e et tri facultatif des clés.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003cp\u003eCollez ou déposez un fichier \u003ccode\u003e.json\u003c/code\u003e, \u003ccode\u003e.yaml\u003c/code\u003e ou \u003ccode\u003e.yml\u003c/code\u003e, vérifiez le résultat, puis copiez-le ou téléchargez-le. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e convertit immédiatement.\u003c/p\u003e","title":"Convertisseur JSON vers YAML"},{"content":"Ce que fait l’outil Collez une commande curl et obtenez du code C# qui envoie la même requête avec HttpClient. L’outil comprend ce que produisent réellement les DevTools et Postman : « Copy as cURL (bash) » avec des chaînes $'...', « Copy as cURL (cmd) » avec des échappements ^, les options --location / --data-urlencode de Postman, les continuations de ligne avec \\, ^ ou un accent grave, et les options combinées comme -sSLk.\nFonctionnalités notables Deux styles : un HttpClient simple avec un SocketsHttpHandler réutilisable, ou une classe typed client enregistrée avec AddHttpClient\u0026lt;T\u0026gt;() pour IHttpClientFactory, avec BaseAddress, délais et paramètres du handler dans l’enregistrement. Le bon type de contenu : les corps JSON deviennent JsonContent.Create(...) avec un objet anonyme (ou un littéral de chaîne brute si vous préférez conserver les octets exacts), les données de formulaire deviennent FormUrlEncodedContent, et -F devient MultipartFormDataContent avec des parties fichier. Un corps multipart brut copié depuis les DevTools est redécoupé en parties. Une authentification correcte : -u, --oauth2-bearer et les en-têtes Authorization utilisent AuthenticationHeaderValue ; --digest / --ntlm utilisent NetworkCredential. Les en-têtes gérés par HttpClient lui-même sont ignorés avec une remarque : Host, Content-Length, Connection et Accept-Encoding (remplacé par la décompression automatique). Les en-têtes sec-ch-* / sec-fetch-* propres au navigateur peuvent être retirés. Les remarques expliquent tout ce qui demande votre attention : -k, identifiants dans le code, JSON envoyé sans Content-Type, variables shell, options ignorées. Utilisation Collez la commande, choisissez HttpClient ou Typed client, puis copiez ou téléchargez le fichier .cs. Le tableau de la requête analysée montre exactement comment la commande a été comprise. Cliquez sur Exemple pour parcourir des exemples Chrome, Postman, Windows cmd et envoi de fichier.\nConfidentialité Tout s’exécute dans votre navigateur ; rien n’est envoyé nulle part. La dernière commande n’est conservée dans le stockage local que si elle ne contient aucun identifiant (jetons, cookies, mots de passe).\n","permalink":"https://www.softinbit.com/fr/tools/curl-to-csharp/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez une commande curl et obtenez du code C# qui envoie la même requête avec \u003ccode\u003eHttpClient\u003c/code\u003e. L’outil comprend ce que produisent réellement les DevTools et Postman : « Copy as cURL (bash) » avec des chaînes \u003ccode\u003e$'...'\u003c/code\u003e, « Copy as cURL (cmd) » avec des échappements \u003ccode\u003e^\u003c/code\u003e, les options \u003ccode\u003e--location\u003c/code\u003e / \u003ccode\u003e--data-urlencode\u003c/code\u003e de Postman, les continuations de ligne avec \u003ccode\u003e\\\u003c/code\u003e, \u003ccode\u003e^\u003c/code\u003e ou un accent grave, et les options combinées comme \u003ccode\u003e-sSLk\u003c/code\u003e.\u003c/p\u003e","title":"curl vers C# HttpClient"},{"content":"Ce que fait l’outil Collez un certificat PEM, ou une chaîne entière, ou déposez un fichier .pem, .crt, .cer, .der ou .p7b : chaque certificat est décodé en une fiche lisible.\nSujet et émetteur, chaque attribut (CN, O, OU, C\u0026hellip;) étant affiché séparément. Validité en UTC avec un badge expiré, expire bientôt ou valide et le nombre de jours restants. Subject Alternative Names (SAN) : noms DNS, adresses IP (IPv4 et IPv6), e-mails, URI et UPN Microsoft. Clé publique : algorithme et taille ou courbe (RSA 2048, EC P-256, Ed25519\u0026hellip;), ainsi que l’algorithme de signature, paramètres RSASSA-PSS compris. Utilisation de la clé, utilisation étendue, contraintes de base (CA ou non, longueur de chemin), identifiants de clé du sujet et de l’autorité, URL CRL et OCSP, stratégies de certificat (DV / OV / EV) et horodatages Certificate Transparency intégrés. Les extensions critiques sont signalées. Empreintes SHA-256 et SHA-1, calculées avec WebCrypto dans votre navigateur. Vérification de la chaîne : pour chaque certificat, l’outil retrouve son émetteur dans la liste et vérifie la signature. Vous voyez ainsi si la chaîne est complète, dans le bon ordre et réellement signée par le certificat suivant. Le décodeur est un petit analyseur ASN.1/DER écrit pour cette page. Aucune bibliothèque de certificats ni aucun serveur n’intervient.\nComment l’utiliser Collez le texte du certificat ou déposez un fichier. Pour vérifier un serveur, exportez sa chaîne depuis la visionneuse de certificats du navigateur ou exécutez openssl s_client -showcerts -connect host:443 et collez la sortie. Les blocs supplémentaires, comme les clés privées, sont ignorés (et signalés).\nConfidentialité Les certificats sont des documents publics, mais ils ne sont décodés que dans votre navigateur. Le texte collé est conservé dans le stockage local pour qu’un rechargement ne le perde pas ; Effacer le supprime.\n","permalink":"https://www.softinbit.com/fr/tools/certificate-decoder/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez un certificat PEM, ou une chaîne entière, ou déposez un fichier \u003ccode\u003e.pem\u003c/code\u003e, \u003ccode\u003e.crt\u003c/code\u003e, \u003ccode\u003e.cer\u003c/code\u003e, \u003ccode\u003e.der\u003c/code\u003e ou \u003ccode\u003e.p7b\u003c/code\u003e : chaque certificat est décodé en une fiche lisible.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSujet et émetteur\u003c/strong\u003e, chaque attribut (CN, O, OU, C\u0026hellip;) étant affiché séparément.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eValidité\u003c/strong\u003e en UTC avec un badge \u003cem\u003eexpiré\u003c/em\u003e, \u003cem\u003eexpire bientôt\u003c/em\u003e ou \u003cem\u003evalide\u003c/em\u003e et le nombre de jours restants.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSubject Alternative Names (SAN)\u003c/strong\u003e : noms DNS, adresses IP (IPv4 et IPv6), e-mails, URI et UPN Microsoft.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eClé publique\u003c/strong\u003e : algorithme et taille ou courbe (RSA 2048, EC P-256, Ed25519\u0026hellip;), ainsi que l’\u003cstrong\u003ealgorithme de signature\u003c/strong\u003e, paramètres RSASSA-PSS compris.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUtilisation de la clé, utilisation étendue, contraintes de base\u003c/strong\u003e (CA ou non, longueur de chemin), \u003cstrong\u003eidentifiants de clé du sujet et de l’autorité\u003c/strong\u003e, URL CRL et OCSP, stratégies de certificat (DV / OV / EV) et horodatages Certificate Transparency intégrés. Les extensions critiques sont signalées.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEmpreintes SHA-256 et SHA-1\u003c/strong\u003e, calculées avec WebCrypto dans votre navigateur.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eVérification de la chaîne\u003c/strong\u003e : pour chaque certificat, l’outil retrouve son émetteur dans la liste et vérifie la signature. Vous voyez ainsi si la chaîne est complète, dans le bon ordre et réellement signée par le certificat suivant.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLe décodeur est un petit analyseur ASN.1/DER écrit pour cette page. Aucune bibliothèque de certificats ni aucun serveur n’intervient.\u003c/p\u003e","title":"Décodeur de certificats X.509"},{"content":"Ce que fait l’outil Collez un jeton : il est décodé au fil de la saisie.\nJeton coloré : l’en-tête, le payload et la signature sont mis en évidence, si bien qu’un copier-coller raté saute aux yeux. JSON mis en forme pour l’en-tête et le payload, chacun avec copie et téléchargement. Tableau des claims qui explique chaque claim standard (iss, sub, aud, exp, nbf, iat, jti, ainsi que les claims OpenID Connect et Microsoft courants) et convertit les horodatages en dates UTC avec des durées relatives. Ligne d’état : valide, expire dans 12 min, expiré il y a 3 jours ou pas encore valide. Les dates en millisecondes au lieu de secondes sont signalées. Erreurs claires pour les jetons mal formés : mauvais nombre de parties, JWE chiffrés, caractères base64url non valides (avec leur position) et JSON cassé. Vérification de la signature La vérification utilise l’API WebCrypto de votre navigateur :\nHS256 / HS384 / HS512 avec un secret texte ou Base64. Les secrets plus courts que le hash sont signalés (RFC 7518). RS256-512 et PS256-512 avec une clé RSA, ES256 / ES384 / ES512 avec une clé EC, et EdDSA (Ed25519) si le navigateur le prend en charge. La clé peut être un PEM PUBLIC KEY, un RSA PUBLIC KEY, un CERTIFICATE X.509, un JWK ou un JWK Set complet (la clé est choisie d’après son kid). Une clé qui ne correspond pas à l’algorithme (par exemple une clé RSA pour ES256) est signalée comme telle, et non comme un échec vague. Créer un jeton L’onglet Créer un jeton signe un payload JSON avec HS256, HS384 ou HS512. Il propose des boutons pour iat et exp et génère un secret aléatoire de la bonne longueur.\nConfidentialité Les jetons sont décodés localement. Les secrets et les clés ne sont jamais enregistrés ni envoyés nulle part. Seuls le jeton et le brouillon de payload sont conservés dans le stockage local : supprimez donc les jetons de production avec Effacer une fois terminé.\n","permalink":"https://www.softinbit.com/fr/tools/jwt-decoder/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez un jeton : il est décodé au fil de la saisie.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJeton coloré\u003c/strong\u003e : l’en-tête, le payload et la signature sont mis en évidence, si bien qu’un copier-coller raté saute aux yeux.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eJSON mis en forme\u003c/strong\u003e pour l’en-tête et le payload, chacun avec copie et téléchargement.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTableau des claims\u003c/strong\u003e qui explique chaque claim standard (\u003ccode\u003eiss\u003c/code\u003e, \u003ccode\u003esub\u003c/code\u003e, \u003ccode\u003eaud\u003c/code\u003e, \u003ccode\u003eexp\u003c/code\u003e, \u003ccode\u003enbf\u003c/code\u003e, \u003ccode\u003eiat\u003c/code\u003e, \u003ccode\u003ejti\u003c/code\u003e, ainsi que les claims OpenID Connect et Microsoft courants) et convertit les horodatages en dates UTC avec des durées relatives.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLigne d’état\u003c/strong\u003e : \u003cem\u003evalide, expire dans 12 min\u003c/em\u003e, \u003cem\u003eexpiré il y a 3 jours\u003c/em\u003e ou \u003cem\u003epas encore valide\u003c/em\u003e. Les dates en millisecondes au lieu de secondes sont signalées.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErreurs claires\u003c/strong\u003e pour les jetons mal formés : mauvais nombre de parties, JWE chiffrés, caractères base64url non valides (avec leur position) et JSON cassé.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"vérification-de-la-signature\"\u003eVérification de la signature\u003c/h2\u003e\n\u003cp\u003eLa vérification utilise l’API WebCrypto de votre navigateur :\u003c/p\u003e","title":"Décodeur et vérificateur JWT"},{"content":"Ce que fait l’outil Collez un texte et obtenez-le échappé pour le langage dans lequel vous écrivez, ou collez un littéral échappé et récupérez le texte d’origine. Le résultat se met à jour pendant la saisie.\nFormat Règles d’échappement Chaîne JSON \\\u0026quot; \\\\ \\n \\t \\uXXXX Chaîne C# \\\u0026quot; \\\\ \\0 \\a \\n et les échappements \\u, \\U et \\x C# verbatim @\u0026quot;...\u0026quot; guillemets doublés : \u0026quot;\u0026quot; C# brut \u0026quot;\u0026quot;\u0026quot;...\u0026quot;\u0026quot;\u0026quot; choisit un délimiteur plus long que toute suite de guillemets du texte JavaScript '...', \u0026quot;...\u0026quot;, `...` \\xHH, \\u{...}, continuations de ligne, \\${ dans les gabarits SQL apostrophes doublées : '' Champ CSV entre guillemets seulement si nécessaire, guillemets doublés XML / HTML \u0026amp;amp; \u0026amp;lt; \u0026amp;gt; \u0026amp;quot; \u0026amp;#39; ; le déséchappement décode les entités nommées et numériques Expression régulière barre oblique inverse devant . * + ? ^ $ ( ) [ ] { } | / \\ Fonctions notables Le déséchappement accepte le littéral avec ou sans ses guillemets : vous pouvez coller @\u0026quot;C:\\temp\u0026quot; ou 'O''Brien' directement depuis le code. Erreurs précises : un échappement non valide comme \\q en C# est signalé avec sa ligne et sa colonne. Des avertissements signalent le texte qui casserait le littéral, comme un guillemet non échappé. Échapper le non-ASCII écrit chaque caractère non ASCII sous forme de séquence d’échappement, pratique pour les fichiers source qui doivent rester en ASCII. Inverser réinjecte la sortie en entrée et inverse le sens pour vérifier un aller-retour. Les littéraux de chaîne brute prennent leurs sauts de ligne dans le fichier source : un retour chariot (CR) isolé ne peut donc pas être représenté exactement.\nConfidentialité Tout s’exécute dans votre navigateur. Votre saisie est conservée uniquement dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/escape-unescape/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez un texte et obtenez-le échappé pour le langage dans lequel vous écrivez, ou collez un littéral échappé et récupérez le texte d’origine. Le résultat se met à jour pendant la saisie.\u003c/p\u003e\n\u003ctable\u003e\n\t\u003cthead\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003cth\u003eFormat\u003c/th\u003e\n\t\t\t\t\t\u003cth\u003eRègles d’échappement\u003c/th\u003e\n\t\t\t\u003c/tr\u003e\n\t\u003c/thead\u003e\n\t\u003ctbody\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eChaîne JSON\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ccode\u003e\\\u0026quot;\u003c/code\u003e \u003ccode\u003e\\\\\u003c/code\u003e \u003ccode\u003e\\n\u003c/code\u003e \u003ccode\u003e\\t\u003c/code\u003e \u003ccode\u003e\\uXXXX\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eChaîne C#\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ccode\u003e\\\u0026quot;\u003c/code\u003e \u003ccode\u003e\\\\\u003c/code\u003e \u003ccode\u003e\\0\u003c/code\u003e \u003ccode\u003e\\a\u003c/code\u003e \u003ccode\u003e\\n\u003c/code\u003e et les échappements \u003ccode\u003e\\u\u003c/code\u003e, \u003ccode\u003e\\U\u003c/code\u003e et \u003ccode\u003e\\x\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eC# verbatim \u003ccode\u003e@\u0026quot;...\u0026quot;\u003c/code\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eguillemets doublés : \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eC# brut \u003ccode\u003e\u0026quot;\u0026quot;\u0026quot;...\u0026quot;\u0026quot;\u0026quot;\u003c/code\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003echoisit un délimiteur plus long que toute suite de guillemets du texte\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eJavaScript \u003ccode\u003e'...'\u003c/code\u003e, \u003ccode\u003e\u0026quot;...\u0026quot;\u003c/code\u003e, \u003ccode\u003e`...`\u003c/code\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ccode\u003e\\xHH\u003c/code\u003e, \u003ccode\u003e\\u{...}\u003c/code\u003e, continuations de ligne, \u003ccode\u003e\\${\u003c/code\u003e dans les gabarits\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eSQL\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eapostrophes doublées : \u003ccode\u003e''\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eChamp CSV\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eentre guillemets seulement si nécessaire, guillemets doublés\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eXML / HTML\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ccode\u003e\u0026amp;amp;\u003c/code\u003e \u003ccode\u003e\u0026amp;lt;\u003c/code\u003e \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e \u003ccode\u003e\u0026amp;quot;\u003c/code\u003e \u003ccode\u003e\u0026amp;#39;\u003c/code\u003e ; le déséchappement décode les entités nommées et numériques\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eExpression régulière\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003ebarre oblique inverse devant \u003ccode\u003e. * + ? ^ $ ( ) [ ] { } | / \\\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"fonctions-notables\"\u003eFonctions notables\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLe déséchappement accepte le littéral avec ou sans ses guillemets\u003c/strong\u003e : vous pouvez coller \u003ccode\u003e@\u0026quot;C:\\temp\u0026quot;\u003c/code\u003e ou \u003ccode\u003e'O''Brien'\u003c/code\u003e directement depuis le code.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErreurs précises\u003c/strong\u003e : un échappement non valide comme \u003ccode\u003e\\q\u003c/code\u003e en C# est signalé avec sa ligne et sa colonne. Des avertissements signalent le texte qui casserait le littéral, comme un guillemet non échappé.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eÉchapper le non-ASCII\u003c/strong\u003e écrit chaque caractère non ASCII sous forme de séquence d’échappement, pratique pour les fichiers source qui doivent rester en ASCII.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eInverser\u003c/strong\u003e réinjecte la sortie en entrée et inverse le sens pour vérifier un aller-retour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLes littéraux de chaîne brute prennent leurs sauts de ligne dans le fichier source : un retour chariot (CR) isolé ne peut donc pas être représenté exactement.\u003c/p\u003e","title":"Échapper / Déséchapper"},{"content":"À quoi il sert Transformez une feuille de style minifiée ou un fichier SCSS désordonné en code lisible avec une déclaration par ligne, ou réduisez une feuille de style pour la production. La sortie se met à jour pendant la saisie.\nFonctionnalités CSS, SCSS et LESS : l’imbrication, les variables, les mixins, les maps, @use, les gardes et l’interpolation #{} / @{} sont pris en charge. Formatage Prettier avec 2 espaces, 4 espaces ou des tabulations, une largeur de ligne et des guillemets simples ou doubles. Minifier supprime les commentaires, sauf les commentaires de licence /*! ... */, ainsi que les espaces partout où ils n’ont aucun effet : autour de { } ; ,, après : et (, avant !important et autour des combinateurs \u0026gt; + ~ dans les sélecteurs. Le dernier point-virgule de chaque bloc disparaît aussi. Tout le reste est copié tel quel, si bien que les chaînes, les valeurs url(), les échappements comme .md\\:flex, calc(1px + 2px) et les sélecteurs descendants comme .a :hover gardent leur sens. En SCSS et en LESS, les commentaires de ligne // sont également supprimés. Erreurs précises : un bloc non fermé, un guillemet manquant ou une } en trop est signalé avec sa ligne et sa colonne, un extrait avec un repère et un bouton Aller à l’erreur. Taille avant et après, nombre de lignes et durée. L’ouverture d’un fichier .scss ou .less change automatiquement le langage. Comment l’utiliser Collez une feuille de style, ouvrez un fichier ou déposez-le sur l’entrée. Exemple charge un exemple. Choisissez le langage, puis Formater ou Minifier. Copiez ou téléchargez le résultat. Ctrl+Enter lance le traitement immédiatement. Le minificateur ne fusionne pas les règles, ne raccourcit pas les couleurs et ne réécrit pas les valeurs ; pour ce niveau d’optimisation, utilisez un outil de build comme cssnano ou Lightning CSS. Le SCSS et le LESS minifiés restent du SCSS et du LESS : compilez-les avant la mise en production.\nConfidentialité Tout s’exécute dans votre navigateur ; seuls les fichiers Prettier de version figée sont téléchargés depuis un CDN. Vos styles ne sont jamais envoyés. La dernière saisie est conservée dans le stockage local pour qu’un rechargement ne la perde pas.\n","permalink":"https://www.softinbit.com/fr/tools/css-beautifier/","summary":"\u003ch2 id=\"à-quoi-il-sert\"\u003eÀ quoi il sert\u003c/h2\u003e\n\u003cp\u003eTransformez une feuille de style minifiée ou un fichier SCSS désordonné en code lisible avec une déclaration par ligne, ou réduisez une feuille de style pour la production. La sortie se met à jour pendant la saisie.\u003c/p\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCSS, SCSS et LESS\u003c/strong\u003e : l’imbrication, les variables, les mixins, les maps, \u003ccode\u003e@use\u003c/code\u003e, les gardes et l’interpolation \u003ccode\u003e#{}\u003c/code\u003e / \u003ccode\u003e@{}\u003c/code\u003e sont pris en charge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFormatage Prettier\u003c/strong\u003e avec 2 espaces, 4 espaces ou des tabulations, une largeur de ligne et des guillemets simples ou doubles.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMinifier\u003c/strong\u003e supprime les commentaires, sauf les commentaires de licence \u003ccode\u003e/*! ... */\u003c/code\u003e, ainsi que les espaces partout où ils n’ont aucun effet : autour de \u003ccode\u003e{ } ; ,\u003c/code\u003e, après \u003ccode\u003e:\u003c/code\u003e et \u003ccode\u003e(\u003c/code\u003e, avant \u003ccode\u003e!important\u003c/code\u003e et autour des combinateurs \u003ccode\u003e\u0026gt;\u003c/code\u003e \u003ccode\u003e+\u003c/code\u003e \u003ccode\u003e~\u003c/code\u003e dans les sélecteurs. Le dernier point-virgule de chaque bloc disparaît aussi. Tout le reste est copié tel quel, si bien que les chaînes, les valeurs \u003ccode\u003eurl()\u003c/code\u003e, les échappements comme \u003ccode\u003e.md\\:flex\u003c/code\u003e, \u003ccode\u003ecalc(1px + 2px)\u003c/code\u003e et les sélecteurs descendants comme \u003ccode\u003e.a :hover\u003c/code\u003e gardent leur sens. En SCSS et en LESS, les commentaires de ligne \u003ccode\u003e//\u003c/code\u003e sont également supprimés.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErreurs précises\u003c/strong\u003e : un bloc non fermé, un guillemet manquant ou une \u003ccode\u003e}\u003c/code\u003e en trop est signalé avec sa ligne et sa colonne, un extrait avec un repère et un bouton \u003cstrong\u003eAller à l’erreur\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTaille avant et après\u003c/strong\u003e, nombre de lignes et durée. L’ouverture d’un fichier \u003ccode\u003e.scss\u003c/code\u003e ou \u003ccode\u003e.less\u003c/code\u003e change automatiquement le langage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eCollez une feuille de style, ouvrez un fichier ou déposez-le sur l’entrée. \u003cstrong\u003eExemple\u003c/strong\u003e charge un exemple.\u003c/li\u003e\n\u003cli\u003eChoisissez le langage, puis \u003cstrong\u003eFormater\u003c/strong\u003e ou \u003cstrong\u003eMinifier\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eCopiez ou téléchargez le résultat. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e lance le traitement immédiatement.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eLe minificateur ne fusionne pas les règles, ne raccourcit pas les couleurs et ne réécrit pas les valeurs ; pour ce niveau d’optimisation, utilisez un outil de build comme cssnano ou Lightning CSS. Le SCSS et le LESS minifiés restent du SCSS et du LESS : compilez-les avant la mise en production.\u003c/p\u003e","title":"Embellisseur et minificateur CSS"},{"content":"À quoi il sert Collez un modèle, un e-mail, une page enregistrée depuis le navigateur ou un bloc HTML sur une seule ligne issu d’un CMS et récupérez un HTML propre, indenté de façon cohérente, ou sa version sûre la plus compacte. La sortie se met à jour pendant la saisie.\nFonctionnalités Formatage Prettier avec 2 espaces, 4 espaces ou des tabulations, la largeur de ligne de votre choix et un attribut par ligne pour les balises longues. Le code intégré est aussi formaté : les blocs \u0026lt;style\u0026gt; et \u0026lt;script\u0026gt; ainsi que les attributs style=\u0026quot;\u0026quot; sont mis en forme par les formateurs CSS et JavaScript. Ces analyseurs supplémentaires ne sont téléchargés que si votre document en contient. Espaces : Respecter le display CSS (par défaut) n’ajoute ni ne supprime jamais d’espace là où cela modifierait le rendu des éléments en ligne. Strict traite chaque élément comme un élément en ligne, Ignorer formate librement. Minifier supprime les commentaires (facultatif ; les commentaires conditionnels comme \u0026lt;!--[if IE]\u0026gt; sont conservés), réduit chaque suite d’espaces à un seul espace et supprime les espaces à côté des balises de bloc comme div, p, li ou td. Le contenu de \u0026lt;pre\u0026gt;, \u0026lt;textarea\u0026gt;, \u0026lt;script\u0026gt;, \u0026lt;style\u0026gt; et \u0026lt;title\u0026gt; est copié octet par octet, et les valeurs d’attributs ne sont jamais modifiées. Erreurs précises : une balise non fermée ou une balise fermante en trop est signalée avec sa ligne et sa colonne, un extrait de code avec un repère et un bouton Aller à l’erreur. Taille avant et après, nombre de lignes et durée. Comment l’utiliser Collez du HTML, ouvrez un fichier ou déposez-le sur l’entrée. Exemple charge une page d’exemple. Choisissez Formater ou Minifier et ajustez les options. Copiez ou téléchargez le résultat. Ctrl+Enter lance le traitement immédiatement ; décochez En direct pour les très gros fichiers. Le minificateur est volontairement prudent : il ne supprime ni les balises facultatives ni les guillemets d’attributs, et il ne réécrit pas le CSS ou le JavaScript en ligne. Comme la plupart des minificateurs HTML, il supprime les espaces à côté des balises de bloc même si votre CSS les rend inline-block (par exemple une liste horizontale de li), ce qui peut supprimer de petits écarts entre elles.\nConfidentialité Le formatage et la minification se font dans votre navigateur ; seuls les fichiers Prettier de version figée sont téléchargés depuis un CDN. Votre HTML n’est jamais envoyé. La dernière saisie est conservée dans le stockage local pour qu’un rechargement ne la perde pas. Utilisez Effacer pour la supprimer.\n","permalink":"https://www.softinbit.com/fr/tools/html-beautifier/","summary":"\u003ch2 id=\"à-quoi-il-sert\"\u003eÀ quoi il sert\u003c/h2\u003e\n\u003cp\u003eCollez un modèle, un e-mail, une page enregistrée depuis le navigateur ou un bloc HTML sur une seule ligne issu d’un CMS et récupérez un HTML propre, indenté de façon cohérente, ou sa version sûre la plus compacte. La sortie se met à jour pendant la saisie.\u003c/p\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFormatage Prettier\u003c/strong\u003e avec 2 espaces, 4 espaces ou des tabulations, la largeur de ligne de votre choix et \u003cstrong\u003eun attribut par ligne\u003c/strong\u003e pour les balises longues.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLe code intégré est aussi formaté\u003c/strong\u003e : les blocs \u003ccode\u003e\u0026lt;style\u0026gt;\u003c/code\u003e et \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e ainsi que les attributs \u003ccode\u003estyle=\u0026quot;\u0026quot;\u003c/code\u003e sont mis en forme par les formateurs CSS et JavaScript. Ces analyseurs supplémentaires ne sont téléchargés que si votre document en contient.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEspaces\u003c/strong\u003e : \u003cem\u003eRespecter le display CSS\u003c/em\u003e (par défaut) n’ajoute ni ne supprime jamais d’espace là où cela modifierait le rendu des éléments en ligne. \u003cem\u003eStrict\u003c/em\u003e traite chaque élément comme un élément en ligne, \u003cem\u003eIgnorer\u003c/em\u003e formate librement.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMinifier\u003c/strong\u003e supprime les commentaires (facultatif ; les commentaires conditionnels comme \u003ccode\u003e\u0026lt;!--[if IE]\u0026gt;\u003c/code\u003e sont conservés), réduit chaque suite d’espaces à un seul espace et supprime les espaces à côté des balises de bloc comme \u003ccode\u003ediv\u003c/code\u003e, \u003ccode\u003ep\u003c/code\u003e, \u003ccode\u003eli\u003c/code\u003e ou \u003ccode\u003etd\u003c/code\u003e. Le contenu de \u003ccode\u003e\u0026lt;pre\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;textarea\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;style\u0026gt;\u003c/code\u003e et \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e est copié octet par octet, et les valeurs d’attributs ne sont jamais modifiées.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErreurs précises\u003c/strong\u003e : une balise non fermée ou une balise fermante en trop est signalée avec sa ligne et sa colonne, un extrait de code avec un repère et un bouton \u003cstrong\u003eAller à l’erreur\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTaille avant et après\u003c/strong\u003e, nombre de lignes et durée.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eCollez du HTML, ouvrez un fichier ou déposez-le sur l’entrée. \u003cstrong\u003eExemple\u003c/strong\u003e charge une page d’exemple.\u003c/li\u003e\n\u003cli\u003eChoisissez \u003cstrong\u003eFormater\u003c/strong\u003e ou \u003cstrong\u003eMinifier\u003c/strong\u003e et ajustez les options.\u003c/li\u003e\n\u003cli\u003eCopiez ou téléchargez le résultat. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e lance le traitement immédiatement ; décochez \u003cstrong\u003eEn direct\u003c/strong\u003e pour les très gros fichiers.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eLe minificateur est volontairement prudent : il ne supprime ni les balises facultatives ni les guillemets d’attributs, et il ne réécrit pas le CSS ou le JavaScript en ligne. Comme la plupart des minificateurs HTML, il supprime les espaces à côté des balises de bloc même si votre CSS les rend \u003ccode\u003einline-block\u003c/code\u003e (par exemple une liste horizontale de \u003ccode\u003eli\u003c/code\u003e), ce qui peut supprimer de petits écarts entre elles.\u003c/p\u003e","title":"Embellisseur et minificateur HTML"},{"content":"À quoi il sert Collez du code minifié ou simplement mis en forme de façon irrégulière et récupérez-le tel que Prettier le formaterait dans votre éditeur. Passez en mode Minifier pour compresser du JavaScript pur avec Terser. La sortie se met à jour pendant la saisie.\nFonctionnalités JavaScript, TypeScript, JSX et TSX, y compris la syntaxe moderne : chaînage optionnel, décorateurs, génériques, satisfies, import type et composants React. Les options Prettier que les développeurs changent vraiment : 2 espaces, 4 espaces ou des tabulations, largeur de ligne, guillemets simples ou doubles, points-virgules ou non et virgules finales (toutes, ES5 ou aucune). Minification avec Terser : le raccourcissement des noms et la compression s’activent séparément, les commentaires /*! ... */ et @license sont conservés et les modules ES (import / export) sont détectés automatiquement. Erreurs de syntaxe précises avec la ligne et la colonne, un extrait de code avec un repère et un bouton Aller à l’erreur. Si vous collez du TypeScript alors que JS est sélectionné, l’outil vous le signale. Taille avant et après, nombre de lignes et durée. L’ouverture d’un fichier .ts, .tsx ou .jsx sélectionne automatiquement le langage. Comment l’utiliser Collez du code, ouvrez un fichier ou déposez-le sur l’entrée. Exemple charge un exemple pour le langage sélectionné. Choisissez le langage, puis Formater ou Minifier. Copiez ou téléchargez le résultat. Ctrl+Enter lance le traitement immédiatement. La minification ne fonctionne qu’avec du JavaScript pur. Terser n’a pas d’analyseur TypeScript ni JSX, et aucune version pour navigateur ne minifie directement le TypeScript : le TS, le JSX et le TSX doivent donc d’abord être compilés en JavaScript (par exemple avec tsc, esbuild ou Babel). Vous pouvez toujours les embellir ici. L’analyseur TypeScript n’est téléchargé que si vous choisissez TS ou TSX, et Terser seulement lors de la première minification.\nConfidentialité Votre code est formaté et minifié dans votre navigateur ; seuls les fichiers Prettier et Terser de version figée sont téléchargés depuis un CDN. Rien n’est envoyé. La dernière saisie est conservée dans le stockage local pour qu’un rechargement ne la perde pas.\n","permalink":"https://www.softinbit.com/fr/tools/js-beautifier/","summary":"\u003ch2 id=\"à-quoi-il-sert\"\u003eÀ quoi il sert\u003c/h2\u003e\n\u003cp\u003eCollez du code minifié ou simplement mis en forme de façon irrégulière et récupérez-le tel que Prettier le formaterait dans votre éditeur. Passez en mode \u003cstrong\u003eMinifier\u003c/strong\u003e pour compresser du JavaScript pur avec Terser. La sortie se met à jour pendant la saisie.\u003c/p\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJavaScript, TypeScript, JSX et TSX\u003c/strong\u003e, y compris la syntaxe moderne : chaînage optionnel, décorateurs, génériques, \u003ccode\u003esatisfies\u003c/code\u003e, \u003ccode\u003eimport type\u003c/code\u003e et composants React.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes options Prettier que les développeurs changent vraiment\u003c/strong\u003e : 2 espaces, 4 espaces ou des tabulations, largeur de ligne, guillemets simples ou doubles, points-virgules ou non et virgules finales (toutes, ES5 ou aucune).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMinification avec Terser\u003c/strong\u003e : le raccourcissement des noms et la compression s’activent séparément, les commentaires \u003ccode\u003e/*! ... */\u003c/code\u003e et \u003ccode\u003e@license\u003c/code\u003e sont conservés et les modules ES (\u003ccode\u003eimport\u003c/code\u003e / \u003ccode\u003eexport\u003c/code\u003e) sont détectés automatiquement.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErreurs de syntaxe précises\u003c/strong\u003e avec la ligne et la colonne, un extrait de code avec un repère et un bouton \u003cstrong\u003eAller à l’erreur\u003c/strong\u003e. Si vous collez du TypeScript alors que JS est sélectionné, l’outil vous le signale.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTaille avant et après\u003c/strong\u003e, nombre de lignes et durée. L’ouverture d’un fichier \u003ccode\u003e.ts\u003c/code\u003e, \u003ccode\u003e.tsx\u003c/code\u003e ou \u003ccode\u003e.jsx\u003c/code\u003e sélectionne automatiquement le langage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eCollez du code, ouvrez un fichier ou déposez-le sur l’entrée. \u003cstrong\u003eExemple\u003c/strong\u003e charge un exemple pour le langage sélectionné.\u003c/li\u003e\n\u003cli\u003eChoisissez le langage, puis \u003cstrong\u003eFormater\u003c/strong\u003e ou \u003cstrong\u003eMinifier\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eCopiez ou téléchargez le résultat. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e lance le traitement immédiatement.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003eLa minification ne fonctionne qu’avec du JavaScript pur.\u003c/strong\u003e Terser n’a pas d’analyseur TypeScript ni JSX, et aucune version pour navigateur ne minifie directement le TypeScript : le TS, le JSX et le TSX doivent donc d’abord être compilés en JavaScript (par exemple avec \u003ccode\u003etsc\u003c/code\u003e, esbuild ou Babel). Vous pouvez toujours les embellir ici. L’analyseur TypeScript n’est téléchargé que si vous choisissez TS ou TSX, et Terser seulement lors de la première minification.\u003c/p\u003e","title":"Embellisseur JavaScript et TypeScript"},{"content":"Ce que fait l’outil Le Base64 transforme des octets en 64 caractères imprimables afin que des données binaires puissent transiter dans du JSON, des en-têtes HTTP, des e-mails et des fichiers de configuration. Cet outil convertit dans les deux sens pendant la saisie.\nCompatible UTF-8 : le texte est d’abord encodé en octets UTF-8, si bien que ü, İ et les emojis font l’aller-retour sans perte (un simple btoa() échoue avec eux). Sortie compatible URL et sans remplissage (- et _ au lieu de + et /, sans = final), la variante utilisée par les JWT et de nombreuses URL. Couper à 76 produit des lignes de style MIME / PEM. Décodeur tolérant : sauts de ligne, espaces, remplissage manquant, alphabet compatible URL et préfixe data: URI sont tous acceptés. Les vraies erreurs sont signalées avec la ligne et la colonne exactes. Reconnaît le binaire : si les octets décodés ne sont pas de l’UTF-8 valide, un vidage hexadécimal s’affiche au lieu d’un texte illisible, et le type de fichier est détecté d’après ses octets magiques. Fichiers : déposez n’importe quel fichier pour obtenir son Base64, ou utilisez Enregistrer comme fichier pour retransformer du Base64 en fichier avec la bonne extension. Mode d’emploi Choisissez Encoder ou Décoder. Saisissez, collez ou déposez un fichier dans le volet de gauche. Le résultat se met à jour immédiatement. Cliquez sur Copier (ou Ctrl+Entrée) ou sur Télécharger. Inverser réinjecte la sortie comme entrée et inverse le sens. Confidentialité Tout se passe dans votre navigateur. Les fichiers sont lus localement et rien n’est envoyé. Votre dernière saisie et vos options sont conservées dans le stockage local de votre navigateur ; Effacer supprime la saisie.\n","permalink":"https://www.softinbit.com/fr/tools/base64/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eLe Base64 transforme des octets en 64 caractères imprimables afin que des données binaires puissent transiter dans du JSON, des en-têtes HTTP, des e-mails et des fichiers de configuration. Cet outil convertit dans les deux sens pendant la saisie.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCompatible UTF-8\u003c/strong\u003e : le texte est d’abord encodé en octets UTF-8, si bien que \u003ccode\u003eü\u003c/code\u003e, \u003ccode\u003eİ\u003c/code\u003e et les emojis font l’aller-retour sans perte (un simple \u003ccode\u003ebtoa()\u003c/code\u003e échoue avec eux).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSortie compatible URL et sans remplissage\u003c/strong\u003e (\u003ccode\u003e-\u003c/code\u003e et \u003ccode\u003e_\u003c/code\u003e au lieu de \u003ccode\u003e+\u003c/code\u003e et \u003ccode\u003e/\u003c/code\u003e, sans \u003ccode\u003e=\u003c/code\u003e final), la variante utilisée par les JWT et de nombreuses URL.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCouper à 76\u003c/strong\u003e produit des lignes de style MIME / PEM.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDécodeur tolérant\u003c/strong\u003e : sauts de ligne, espaces, remplissage manquant, alphabet compatible URL et préfixe \u003ccode\u003edata:\u003c/code\u003e URI sont tous acceptés. Les vraies erreurs sont signalées avec la ligne et la colonne exactes.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eReconnaît le binaire\u003c/strong\u003e : si les octets décodés ne sont pas de l’UTF-8 valide, un vidage hexadécimal s’affiche au lieu d’un texte illisible, et le type de fichier est détecté d’après ses octets magiques.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFichiers\u003c/strong\u003e : déposez n’importe quel fichier pour obtenir son Base64, ou utilisez \u003cstrong\u003eEnregistrer comme fichier\u003c/strong\u003e pour retransformer du Base64 en fichier avec la bonne extension.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"mode-demploi\"\u003eMode d’emploi\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eChoisissez \u003cstrong\u003eEncoder\u003c/strong\u003e ou \u003cstrong\u003eDécoder\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eSaisissez, collez ou déposez un fichier dans le volet de gauche. Le résultat se met à jour immédiatement.\u003c/li\u003e\n\u003cli\u003eCliquez sur \u003cstrong\u003eCopier\u003c/strong\u003e (ou \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEntrée\u003c/kbd\u003e) ou sur \u003cstrong\u003eTélécharger\u003c/strong\u003e. \u003cstrong\u003eInverser\u003c/strong\u003e réinjecte la sortie comme entrée et inverse le sens.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"confidentialité\"\u003eConfidentialité\u003c/h2\u003e\n\u003cp\u003eTout se passe dans votre navigateur. Les fichiers sont lus localement et rien n’est envoyé. Votre dernière saisie et vos options sont conservées dans le stockage local de votre navigateur ; \u003cstrong\u003eEffacer\u003c/strong\u003e supprime la saisie.\u003c/p\u003e","title":"Encoder / décoder en Base64"},{"content":"Ce que fait l’outil En HTML, \u0026amp;, \u0026lt;, \u0026gt;, \u0026quot; et ' ont une signification particulière : un texte inséré dans une page ou un attribut doit donc être échappé. Cet outil échappe et déséchappe au fil de la saisie.\nEncoder\nCaractères spéciaux n’échappe que les cinq caractères qui comptent en HTML. C’est ce qu’il vous faut pour les templates, et c’est le choix sûr par défaut. + Non ASCII transforme aussi chaque caractère hors ASCII en référence, pratique pour les e-mails, les anciens systèmes ou les fichiers qui doivent rester en 7 bits. Choisissez des références Nommées (\u0026amp;eacute;, avec repli sur un nombre quand aucun nom courant n’existe), Décimal (\u0026amp;#233;) ou Hex (\u0026amp;#xE9;). Les emojis et autres caractères hors du plan multilingue de base deviennent une seule référence correcte, et non deux moitiés de substitut cassées. Désactivez Échapper les guillemets pour un texte placé uniquement entre des balises. Décoder\nLe décodage utilise l’analyseur HTML de votre navigateur : toutes les entités nommées définies par le standard HTML (plus de 2 000) sont donc prises en charge, ainsi que les références décimales et hexadécimales. Le balisage n’est jamais exécuté. L’outil vous signale les entités inconnues et celles auxquelles il manque le point-virgule, avec la ligne et la colonne, et vous avertit quand l’entrée a été échappée deux fois (\u0026amp;amp;amp;).\nComment l’utiliser Choisissez Encoder ou Décoder, collez votre texte et copiez le résultat avec Copier ou Ctrl+Entrée. Inverser réinjecte la sortie comme entrée.\nConfidentialité Rien ne quitte votre navigateur. Votre dernière saisie est conservée dans le stockage local ; Effacer la supprime.\n","permalink":"https://www.softinbit.com/fr/tools/html-entities/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eEn HTML, \u003ccode\u003e\u0026amp;\u003c/code\u003e, \u003ccode\u003e\u0026lt;\u003c/code\u003e, \u003ccode\u003e\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026quot;\u003c/code\u003e et \u003ccode\u003e'\u003c/code\u003e ont une signification particulière : un texte inséré dans une page ou un attribut doit donc être échappé. Cet outil échappe et déséchappe au fil de la saisie.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEncoder\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCaractères spéciaux\u003c/strong\u003e n’échappe que les cinq caractères qui comptent en HTML. C’est ce qu’il vous faut pour les templates, et c’est le choix sûr par défaut.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e+ Non ASCII\u003c/strong\u003e transforme aussi chaque caractère hors ASCII en référence, pratique pour les e-mails, les anciens systèmes ou les fichiers qui doivent rester en 7 bits.\u003c/li\u003e\n\u003cli\u003eChoisissez des références \u003cstrong\u003eNommées\u003c/strong\u003e (\u003ccode\u003e\u0026amp;eacute;\u003c/code\u003e, avec repli sur un nombre quand aucun nom courant n’existe), \u003cstrong\u003eDécimal\u003c/strong\u003e (\u003ccode\u003e\u0026amp;#233;\u003c/code\u003e) ou \u003cstrong\u003eHex\u003c/strong\u003e (\u003ccode\u003e\u0026amp;#xE9;\u003c/code\u003e). Les emojis et autres caractères hors du plan multilingue de base deviennent une seule référence correcte, et non deux moitiés de substitut cassées.\u003c/li\u003e\n\u003cli\u003eDésactivez \u003cstrong\u003eÉchapper les guillemets\u003c/strong\u003e pour un texte placé uniquement entre des balises.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDécoder\u003c/strong\u003e\u003c/p\u003e","title":"Encoder / décoder les entités HTML"},{"content":"Ce que fait l’outil L’encodage pourcent remplace les caractères interdits dans une URL par des octets %XX. Les caractères à échapper dépendent de la destination du texte ; l’encodeur propose donc les trois règles réellement utilisées par les développeurs :\nComposant (encodeURIComponent) : pour une seule valeur de requête ou un segment de chemin. Échappe \u0026amp;, =, /, ? et #. URL complète (encodeURI) : conserve la structure de l’URL et n’échappe que les espaces, les caractères non ASCII et les caractères non sûrs. RFC 3986 : échappe aussi ! ' ( ) *, comme l’exigent OAuth 1.0 et la signature des requêtes AWS. Espace en + passe à l’encodage des formulaires HTML (application/x-www-form-urlencoded) dans les deux sens. Le décodeur ne renonce jamais face à une entrée incorrecte. Un % non échappé ou une suite d’octets qui n’est pas de l’UTF-8 valide est signalé avec sa position exacte et conservé tel quel, et un texte encodé deux fois est détecté.\nAnalyseur d’URL Collez une URL pour voir son protocole, son hôte, son port (y compris le port par défaut), son chemin, sa requête et son fragment, chacun avec un bouton de copie. Les paramètres de requête sont listés dans un tableau avec les clés et valeurs décodées, les clés répétées sont signalées et l’ensemble peut être copié en JSON. Les paramètres du fragment (#/route?tab=2), courants dans les applications monopages, ont leur propre tableau.\nMode d’emploi Choisissez Encoder ou Décoder et saisissez votre texte : la sortie se met à jour au fil de la frappe. Inverser réinjecte le résultat comme entrée ; Analyser l’URL l’envoie à l’analyseur.\nConfidentialité Tout s’exécute dans votre navigateur et rien n’est envoyé nulle part. Votre dernière saisie et votre dernière URL sont conservées dans le stockage local ; Effacer les supprime.\n","permalink":"https://www.softinbit.com/fr/tools/url-encode/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eL’encodage pourcent remplace les caractères interdits dans une URL par des octets \u003ccode\u003e%XX\u003c/code\u003e. Les caractères à échapper dépendent de la destination du texte ; l’encodeur propose donc les trois règles réellement utilisées par les développeurs :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eComposant\u003c/strong\u003e (\u003ccode\u003eencodeURIComponent\u003c/code\u003e) : pour une seule valeur de requête ou un segment de chemin. Échappe \u003ccode\u003e\u0026amp;\u003c/code\u003e, \u003ccode\u003e=\u003c/code\u003e, \u003ccode\u003e/\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e et \u003ccode\u003e#\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eURL complète\u003c/strong\u003e (\u003ccode\u003eencodeURI\u003c/code\u003e) : conserve la structure de l’URL et n’échappe que les espaces, les caractères non ASCII et les caractères non sûrs.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRFC 3986\u003c/strong\u003e : échappe aussi \u003ccode\u003e! ' ( ) *\u003c/code\u003e, comme l’exigent OAuth 1.0 et la signature des requêtes AWS.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEspace en +\u003c/strong\u003e passe à l’encodage des formulaires HTML (\u003ccode\u003eapplication/x-www-form-urlencoded\u003c/code\u003e) dans les deux sens.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLe décodeur ne renonce jamais face à une entrée incorrecte. Un \u003ccode\u003e%\u003c/code\u003e non échappé ou une suite d’octets qui n’est pas de l’UTF-8 valide est signalé avec sa position exacte et conservé tel quel, et un texte encodé deux fois est détecté.\u003c/p\u003e","title":"Encoder / décoder une URL"},{"content":"Ce que fait l’outil Collez du JSON : il est validé et formaté pendant la saisie. En cas de problème, vous obtenez la ligne et la colonne exactes, une explication claire (par exemple « Virgule en trop avant } » ou « Les noms de propriété doivent être entre guillemets doubles ») et un extrait avec un accent circonflexe sous l’erreur. Aller à l’erreur place le curseur exactement à cet endroit dans l’entrée.\nFonctionnalités Sortie lisible ou minifiée avec 2 espaces, 4 espaces ou des tabulations. Trier les clés par ordre alphabétique à tous les niveaux, ce qui facilite la comparaison de deux documents. Correction auto répare avant l’analyse les dégâts habituels du copier-coller : commentaires // et /* */, virgules finales, chaînes entre guillemets simples, noms de propriété sans guillemets, True/False/None de Python, sauts de ligne bruts dans les chaînes et espaces insécables. La ligne d’état liste chaque réparation effectuée. Formatage sans perte : les nombres sont écrits exactement comme vous les avez saisis, donc 12345678901234567890 et 1.10 ne sont ni arrondis ni réécrits, et les échappements des chaînes sont conservés. Vue arborescente avec nœuds repliables, tout déplier/replier et le JSONPath du nœud cliqué (par exemple $.orders[0].total), prêt à copier. Statistiques : taille d’entrée et de sortie, nombre de clés, d’objets et de tableaux, et profondeur d’imbrication maximale. Les clés en double sont signalées par un avertissement. Comment l’utiliser Collez du JSON, ouvrez un fichier ou déposez-le sur l’entrée. Choisissez Lisible ou Minifier et l’indentation souhaitée. Copiez ou téléchargez le résultat. Ctrl+Enter formate immédiatement. Confidentialité L’analyse et le formatage ont lieu dans votre navigateur. Rien n’est envoyé ; votre dernière entrée est conservée dans le stockage local du navigateur pour qu’un rechargement de la page ne la perde pas. Utilisez Effacer pour la supprimer.\n","permalink":"https://www.softinbit.com/fr/tools/json-formatter/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez du JSON : il est validé et formaté pendant la saisie. En cas de problème, vous obtenez la \u003cstrong\u003eligne et la colonne\u003c/strong\u003e exactes, une explication claire (par exemple « Virgule en trop avant } » ou « Les noms de propriété doivent être entre guillemets doubles ») et un extrait avec un accent circonflexe sous l’erreur. \u003cstrong\u003eAller à l’erreur\u003c/strong\u003e place le curseur exactement à cet endroit dans l’entrée.\u003c/p\u003e","title":"Formateur et validateur JSON"},{"content":"À quoi il sert Collez une requête copiée d’un journal, d’une trace d’ORM ou d’une procédure stockée et récupérez-la lisible : une clause par ligne, des jointures et sous-requêtes indentées, une casse des mots-clés cohérente. Le formatage se fait pendant la saisie.\nFonctionnalités Adapté au dialecte : SQL Server (T-SQL) par défaut, avec @variables, tables #temp, [noms entre crochets], chaînes N'unicode' et séparateurs GO. PostgreSQL (paramètres $1, conversions ::, chaînes $$), MySQL, MariaDB, SQLite, SQL standard, Oracle PL/SQL, Snowflake et BigQuery sont également pris en charge. Casse des mots-clés : MAJUSCULES, minuscules ou conservée, appliquée au choix aussi aux noms de fonctions et aux types de données. Indentation de 2 ou 4 espaces ou par tabulations, disposition standard ou tabulaire, lignes vides entre les instructions et opérateurs compacts. Minifier ramène une requête sur le moins de lignes possible pour des journaux ou des fichiers de configuration. Les commentaires sont supprimés, mais le contenu des chaînes, les identificateurs entre guillemets, les indications d’optimiseur (/*+ ... */) et les lignes GO de T-SQL restent intacts. Erreurs claires : si la requête ne peut pas être analysée dans le dialecte choisi, vous voyez la ligne, la colonne et un extrait avec un repère, souvent le signe qu’un autre dialecte est nécessaire. Comment l’utiliser Choisissez le dialecte, collez la requête ou déposez un fichier .sql, puis copiez ou téléchargez le résultat. Ctrl+Enter formate immédiatement. Le formatage utilise la bibliothèque open source sql-formatter ; le code procédural (blocs BEGIN ... END) et les indications de table comme WITH (NOLOCK) restent valides, mais sont disposés plus simplement que les requêtes ordinaires.\nConfidentialité Votre SQL est formaté dans votre navigateur et n’est jamais envoyé nulle part. La dernière saisie est conservée dans le stockage local pour qu’un rechargement ne la perde pas.\n","permalink":"https://www.softinbit.com/fr/tools/sql-formatter/","summary":"\u003ch2 id=\"à-quoi-il-sert\"\u003eÀ quoi il sert\u003c/h2\u003e\n\u003cp\u003eCollez une requête copiée d’un journal, d’une trace d’ORM ou d’une procédure stockée et récupérez-la lisible : une clause par ligne, des jointures et sous-requêtes indentées, une casse des mots-clés cohérente. Le formatage se fait pendant la saisie.\u003c/p\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdapté au dialecte\u003c/strong\u003e : SQL Server (T-SQL) par défaut, avec \u003ccode\u003e@variables\u003c/code\u003e, tables \u003ccode\u003e#temp\u003c/code\u003e, \u003ccode\u003e[noms entre crochets]\u003c/code\u003e, chaînes \u003ccode\u003eN'unicode'\u003c/code\u003e et séparateurs \u003ccode\u003eGO\u003c/code\u003e. PostgreSQL (paramètres \u003ccode\u003e$1\u003c/code\u003e, conversions \u003ccode\u003e::\u003c/code\u003e, chaînes \u003ccode\u003e$$\u003c/code\u003e), MySQL, MariaDB, SQLite, SQL standard, Oracle PL/SQL, Snowflake et BigQuery sont également pris en charge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCasse des mots-clés\u003c/strong\u003e : MAJUSCULES, minuscules ou conservée, appliquée au choix aussi aux noms de fonctions et aux types de données.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIndentation\u003c/strong\u003e de 2 ou 4 espaces ou par tabulations, disposition standard ou tabulaire, lignes vides entre les instructions et opérateurs compacts.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMinifier\u003c/strong\u003e ramène une requête sur le moins de lignes possible pour des journaux ou des fichiers de configuration. Les commentaires sont supprimés, mais le contenu des chaînes, les identificateurs entre guillemets, les indications d’optimiseur (\u003ccode\u003e/*+ ... */\u003c/code\u003e) et les lignes \u003ccode\u003eGO\u003c/code\u003e de T-SQL restent intacts.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErreurs claires\u003c/strong\u003e : si la requête ne peut pas être analysée dans le dialecte choisi, vous voyez la ligne, la colonne et un extrait avec un repère, souvent le signe qu’un autre dialecte est nécessaire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003cp\u003eChoisissez le dialecte, collez la requête ou déposez un fichier \u003ccode\u003e.sql\u003c/code\u003e, puis copiez ou téléchargez le résultat. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e formate immédiatement. Le formatage utilise la bibliothèque open source sql-formatter ; le code procédural (blocs \u003ccode\u003eBEGIN ... END\u003c/code\u003e) et les indications de table comme \u003ccode\u003eWITH (NOLOCK)\u003c/code\u003e restent valides, mais sont disposés plus simplement que les requêtes ordinaires.\u003c/p\u003e","title":"Formateur SQL"},{"content":"À quoi il sert Collez du XML (une réponse SOAP, un web.config, un .csproj, un flux RSS) et obtenez-le indenté et vérifié pendant la saisie. Si le document n’est pas bien formé, vous voyez la ligne, la colonne et le message de l’analyseur, avec un extrait qui pointe vers le problème.\nFonctionnalités Mise en forme lisible ou minification avec 2 espaces, 4 espaces ou des tabulations, et au choix un attribut par ligne pour les éléments qui en ont beaucoup. Rien n’est perdu : la déclaration XML, le DOCTYPE (y compris un sous-ensemble interne), les commentaires, les sections CDATA et les instructions de traitement sont conservés. Désactivez Conserver les commentaires pour les supprimer. Respect du texte : les éléments qui ne contiennent que du texte restent sur une ligne, tels qu’ils ont été écrits, le contenu mixte (texte avec éléments en ligne) n’est pas réindenté et xml:space=\u0026quot;preserve\u0026quot; est respecté. Testeur XPath 1.0 : saisissez une expression et voyez chaque nœud correspondant avec son chemin (/orders/order[2]/customer), ou le résultat nombre, chaîne ou booléen. Les préfixes d’espace de noms déclarés dans le document fonctionnent directement (//pay:payment), et un espace de noms par défaut est associé pour vous au préfixe d:. Statistiques : taille d’entrée et de sortie, nombre d’éléments et d’attributs, et profondeur d’imbrication. Comment l’utiliser Collez du XML ou déposez un fichier, choisissez Lisible ou Minifier, puis copiez ou téléchargez le résultat. Saisissez une expression XPath dans le champ sous la sortie pour interroger le document.\nConfidentialité L’analyse utilise l’analyseur XML et le moteur XPath intégrés à votre navigateur. Rien n’est envoyé ; votre dernière saisie et votre dernière expression sont conservées dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/xml-formatter/","summary":"\u003ch2 id=\"à-quoi-il-sert\"\u003eÀ quoi il sert\u003c/h2\u003e\n\u003cp\u003eCollez du XML (une réponse SOAP, un \u003ccode\u003eweb.config\u003c/code\u003e, un \u003ccode\u003e.csproj\u003c/code\u003e, un flux RSS) et obtenez-le indenté et vérifié pendant la saisie. Si le document n’est pas bien formé, vous voyez la ligne, la colonne et le message de l’analyseur, avec un extrait qui pointe vers le problème.\u003c/p\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMise en forme lisible ou minification\u003c/strong\u003e avec 2 espaces, 4 espaces ou des tabulations, et au choix un attribut par ligne pour les éléments qui en ont beaucoup.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRien n’est perdu\u003c/strong\u003e : la déclaration XML, le \u003ccode\u003eDOCTYPE\u003c/code\u003e (y compris un sous-ensemble interne), les commentaires, les sections \u003ccode\u003eCDATA\u003c/code\u003e et les instructions de traitement sont conservés. Désactivez \u003cstrong\u003eConserver les commentaires\u003c/strong\u003e pour les supprimer.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRespect du texte\u003c/strong\u003e : les éléments qui ne contiennent que du texte restent sur une ligne, tels qu’ils ont été écrits, le contenu mixte (texte avec éléments en ligne) n’est pas réindenté et \u003ccode\u003exml:space=\u0026quot;preserve\u0026quot;\u003c/code\u003e est respecté.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTesteur XPath 1.0\u003c/strong\u003e : saisissez une expression et voyez chaque nœud correspondant avec son chemin (\u003ccode\u003e/orders/order[2]/customer\u003c/code\u003e), ou le résultat nombre, chaîne ou booléen. Les préfixes d’espace de noms déclarés dans le document fonctionnent directement (\u003ccode\u003e//pay:payment\u003c/code\u003e), et un espace de noms par défaut est associé pour vous au préfixe \u003ccode\u003ed:\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eStatistiques\u003c/strong\u003e : taille d’entrée et de sortie, nombre d’éléments et d’attributs, et profondeur d’imbrication.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003cp\u003eCollez du XML ou déposez un fichier, choisissez Lisible ou Minifier, puis copiez ou téléchargez le résultat. Saisissez une expression XPath dans le champ sous la sortie pour interroger le document.\u003c/p\u003e","title":"Formateur XML et testeur XPath"},{"content":"Ce que fait l’outil Générez de un à 1 000 identifiants à la fois et collez-les directement dans votre code :\nUUID v4 : 122 bits aléatoires, le GUID classique. UUID v7 (RFC 9562) : un horodatage Unix de 48 bits en millisecondes suivi de bits aléatoires. Les valeurs v7 se trient par date de création, ce qui garde les index de base de données compacts. ULID : 26 caractères en Crockford Base32, également triables dans le temps et sûrs pour les URL. Les valeurs spéciales Nil et Max. Au sein d’un lot, les valeurs v7 et ULID sont strictement croissantes, même lorsque beaucoup sont créées dans la même milliseconde (l’horodatage est conservé et la partie aléatoire est incrémentée, comme le décrit la RFC 9562 pour la génération monotone).\nLes options de format couvrent minuscules ou MAJUSCULES, avec ou sans tirets, {accolades} comme .NET Guid.ToString(\u0026quot;B\u0026quot;), guillemets doubles ou simples, et séparateurs virgule pour les tableaux et les listes SQL IN (...).\nInspecteur Collez n’importe quel UUID, GUID ou ULID pour voir sa version, sa variante et sa validité. Pour v1, v6, v7 et ULID, l’horodatage intégré est converti en heure UTC et locale. Vous obtenez aussi la forme canonique, l’ordre des octets utilisé par .NET Guid.ToByteArray(), le Base64 et la même valeur de 128 bits exprimée en ULID (ou en UUID pour un ULID).\nMode d’emploi Choisissez un type, indiquez combien il vous en faut et cliquez sur Générer (ou Ctrl+Enter). Copiez ou téléchargez la liste. Cliquez sur une ligne générée pour l’inspecter.\nConfidentialité Les identifiants sont générés dans votre navigateur avec crypto.getRandomValues. Rien n’est envoyé à un serveur. Vos réglages de format sont mémorisés localement.\n","permalink":"https://www.softinbit.com/fr/tools/uuid/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eGénérez de un à 1 000 identifiants à la fois et collez-les directement dans votre code :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eUUID v4\u003c/strong\u003e : 122 bits aléatoires, le GUID classique.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUUID v7\u003c/strong\u003e (RFC 9562) : un horodatage Unix de 48 bits en millisecondes suivi de bits aléatoires. Les valeurs v7 se trient par date de création, ce qui garde les index de base de données compacts.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eULID\u003c/strong\u003e : 26 caractères en Crockford Base32, également triables dans le temps et sûrs pour les URL.\u003c/li\u003e\n\u003cli\u003eLes valeurs spéciales \u003cstrong\u003eNil\u003c/strong\u003e et \u003cstrong\u003eMax\u003c/strong\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAu sein d’un lot, les valeurs v7 et ULID sont strictement croissantes, même lorsque beaucoup sont créées dans la même milliseconde (l’horodatage est conservé et la partie aléatoire est incrémentée, comme le décrit la RFC 9562 pour la génération monotone).\u003c/p\u003e","title":"Générateur d’UUID / GUID / ULID"},{"content":"Ce que fait l’outil Crée un code QR statique au fil de la saisie. Les modèles s’occupent du format de texte exact qu’attendent les appareils photo des téléphones :\nTexte / URL : n’importe quel texte ou lien. Wi-Fi : nom du réseau, mot de passe, chiffrement (WPA/WPA2/WPA3, WEP ou ouvert) et réseaux masqués. Les caractères spéciaux sont échappés pour vous. E-mail : un lien mailto: avec objet et message. Téléphone et SMS : composer un numéro ou ouvrir un SMS prérempli. vCard : une fiche contact (vCard 3.0) avec nom, organisation, téléphones, e-mail, site web et adresse. La zone Contenu encodé affiche le texte exact stocké dans le code, pour que vous puissiez le vérifier ou le réutiliser.\nOptions Correction d’erreur L, M, Q ou H. Les niveaux élevés résistent à plus de dégâts, ou à un logo posé par-dessus, mais rendent le code plus dense. Taille et marge (zone de silence). Les modules sont alignés sur des pixels entiers pour que l’image reste nette. Couleurs, avec des avertissements quand le contraste est trop faible ou que les couleurs sont inversées, car certains lecteurs ne peuvent pas lire ces codes. Un avertissement ou une erreur quand le contenu est trop long pour le niveau de correction d’erreur choisi. Téléchargez en PNG pour les documents et les messageries, ou en SVG pour l’impression et les outils de design, où il s’agrandit sans perte de netteté.\nLes codes générés sont statiques : le contenu est stocké dans l’image elle-même, sans service de redirection intermédiaire et sans date d’expiration.\nConfidentialité Les codes sont générés dans votre navigateur avec la bibliothèque open source qrcode-generator. Rien de ce que vous saisissez n’est envoyé. Le mot de passe Wi-Fi n’est jamais enregistré ; les autres champs sont mémorisés sur cet appareil.\n","permalink":"https://www.softinbit.com/fr/tools/qr-code/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCrée un code QR statique au fil de la saisie. Les modèles s’occupent du format de texte exact qu’attendent les appareils photo des téléphones :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTexte / URL\u003c/strong\u003e : n’importe quel texte ou lien.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWi-Fi\u003c/strong\u003e : nom du réseau, mot de passe, chiffrement (WPA/WPA2/WPA3, WEP ou ouvert) et réseaux masqués. Les caractères spéciaux sont échappés pour vous.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eE-mail\u003c/strong\u003e : un lien \u003ccode\u003emailto:\u003c/code\u003e avec objet et message.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTéléphone\u003c/strong\u003e et \u003cstrong\u003eSMS\u003c/strong\u003e : composer un numéro ou ouvrir un SMS prérempli.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evCard\u003c/strong\u003e : une fiche contact (vCard 3.0) avec nom, organisation, téléphones, e-mail, site web et adresse.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLa zone \u003cstrong\u003eContenu encodé\u003c/strong\u003e affiche le texte exact stocké dans le code, pour que vous puissiez le vérifier ou le réutiliser.\u003c/p\u003e","title":"Générateur de code QR"},{"content":"Ce que fait l’outil Décrivez les lignes dont vous avez besoin et obtenez des données de test réalistes au format attendu par votre code. Chaque champ a un nom, un type, ses propres options (plages, décimales, périodes, listes de valeurs, marque de carte, plage d’IP) et un % de null pour les colonnes facultatives.\n31 types de champs : noms, e-mails, noms d’utilisateur, téléphones, entreprises, intitulés de poste, adresses, texte lorem, nombres, booléens avec un % de vrai, dates, GUID, séquences, listes de valeurs, valeurs de type IBAN avec une clé mod-97 valide, numéros de carte de test valides selon Luhn, URL, IP, couleurs hex, produits, prix et statuts. Noms, villes, rues et entreprises anglais et turcs, avec les caractères turcs corrects. Les codes postaux turcs commencent par le code d’immatriculation de la ville. Lignes cohérentes : l’e-mail, le nom d’utilisateur et le nom complet sont construits à partir de la même personne que les champs prénom et nom. Graine : la même graine et le même schéma donnent toujours les mêmes lignes. Laissez-la vide pour obtenir de nouvelles données aléatoires. Formats de sortie JSON, JSON Lines, CSV (virgule, point-virgule ou tabulation, avec un BOM facultatif pour qu’Excel affiche les caractères turcs), SQL INSERT pour T-SQL (chaînes N'…', 1000 lignes au plus par instruction) ou PostgreSQL avec un CREATE TABLE facultatif, et C# : un record avec une liste prête à l’emploi, ou un Faker\u0026lt;T\u0026gt; Bogus qui recrée le schéma dans vos tests. Bogus utilise son propre générateur aléatoire : ses valeurs ne correspondront donc pas à celles de cette page.\nMode d’emploi Partez d’un modèle (Clients, Commandes, Produits, Utilisateurs), modifiez les champs, choisissez le nombre de lignes et le format, puis copiez ou téléchargez le résultat.\nConfidentialité Tout est généré dans votre navigateur avec crypto.getRandomValues, ou avec un générateur à graine lorsque vous en définissez une. Les e-mails utilisent le domaine réservé example.com et les URL le domaine réservé .example. Votre schéma et vos réglages sont enregistrés uniquement dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/mock-data/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eDécrivez les lignes dont vous avez besoin et obtenez des données de test réalistes au format attendu par votre code. Chaque champ a un nom, un type, ses propres options (plages, décimales, périodes, listes de valeurs, marque de carte, plage d’IP) et un \u003cstrong\u003e% de null\u003c/strong\u003e pour les colonnes facultatives.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e31 types de champs\u003c/strong\u003e : noms, e-mails, noms d’utilisateur, téléphones, entreprises, intitulés de poste, adresses, texte lorem, nombres, booléens avec un % de vrai, dates, GUID, séquences, listes de valeurs, valeurs de type IBAN avec une clé mod-97 valide, numéros de carte de \u003cstrong\u003etest\u003c/strong\u003e valides selon Luhn, URL, IP, couleurs hex, produits, prix et statuts.\u003c/li\u003e\n\u003cli\u003eNoms, villes, rues et entreprises \u003cstrong\u003eanglais et turcs\u003c/strong\u003e, avec les caractères turcs corrects. Les codes postaux turcs commencent par le code d’immatriculation de la ville.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLignes cohérentes\u003c/strong\u003e : l’e-mail, le nom d’utilisateur et le nom complet sont construits à partir de la même personne que les champs prénom et nom.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGraine\u003c/strong\u003e : la même graine et le même schéma donnent toujours les mêmes lignes. Laissez-la vide pour obtenir de nouvelles données aléatoires.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"formats-de-sortie\"\u003eFormats de sortie\u003c/h2\u003e\n\u003cp\u003eJSON, JSON Lines, CSV (virgule, point-virgule ou tabulation, avec un BOM facultatif pour qu’Excel affiche les caractères turcs), SQL \u003ccode\u003eINSERT\u003c/code\u003e pour T-SQL (chaînes \u003ccode\u003eN'…'\u003c/code\u003e, 1000 lignes au plus par instruction) ou PostgreSQL avec un \u003ccode\u003eCREATE TABLE\u003c/code\u003e facultatif, et C# : un \u003ccode\u003erecord\u003c/code\u003e avec une liste prête à l’emploi, ou un \u003ccode\u003eFaker\u0026lt;T\u0026gt;\u003c/code\u003e Bogus qui recrée le schéma dans vos tests. Bogus utilise son propre générateur aléatoire : ses valeurs ne correspondront donc pas à celles de cette page.\u003c/p\u003e","title":"Générateur de données de test"},{"content":"Ce que fait l’outil Saisissez du texte ou déposez un fichier et tous les condensats courants s’affichent à la fois : MD5, SHA-1, SHA-256, SHA-384, SHA-512 et CRC-32. Inutile de choisir d’abord un algorithme ou de cliquer sur un bouton : le tableau se met à jour pendant la saisie.\nSommes de contrôle de fichiers : déposez un fichier (jusqu’à 1 Go) pour obtenir ses hachages, puis collez la somme de contrôle de la page de téléchargement dans Comparer avec le hachage attendu. L’algorithme correspondant est mis en évidence : vous n’avez pas besoin de savoir lequel l’éditeur a utilisé. Les valeurs collées peuvent être en hex majuscules ou minuscules, en Base64, séparées par des deux-points, ou une ligne copiée depuis la sortie de sha256sum ou du shasum BSD. Mode HMAC : signez du texte avec une clé secrète, par exemple pour vérifier la signature d’un webhook. La clé peut être du texte UTF-8, de l’hex ou du Base64. CRC-32 est masqué dans ce mode, car ce n’est pas un hachage à clé. Sortie en hex minuscules, hex majuscules ou Base64. Copiez une seule valeur, copiez tout ou téléchargez-les dans un fichier texte. Le texte est encodé en UTF-8 avant le hachage, comme le font par défaut la plupart des langages de programmation.\nMD5 et SHA-1 sont marqués obsolète : ils conviennent pour détecter une corruption accidentelle, mais ne doivent pas servir pour des mots de passe ou des signatures. Pour les mots de passe, utilisez un algorithme dédié comme Argon2, scrypt ou PBKDF2.\nConfidentialité Le hachage se fait dans votre navigateur avec l’API Web Crypto (MD5 et CRC-32 sont calculés par le code de cette page). Les fichiers sont lus localement et jamais envoyés. La clé HMAC n’est jamais enregistrée.\n","permalink":"https://www.softinbit.com/fr/tools/hash/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eSaisissez du texte ou déposez un fichier et tous les condensats courants s’affichent à la fois : \u003cstrong\u003eMD5, SHA-1, SHA-256, SHA-384, SHA-512 et CRC-32\u003c/strong\u003e. Inutile de choisir d’abord un algorithme ou de cliquer sur un bouton : le tableau se met à jour pendant la saisie.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSommes de contrôle de fichiers\u003c/strong\u003e : déposez un fichier (jusqu’à 1 Go) pour obtenir ses hachages, puis collez la somme de contrôle de la page de téléchargement dans \u003cstrong\u003eComparer avec le hachage attendu\u003c/strong\u003e. L’algorithme correspondant est mis en évidence : vous n’avez pas besoin de savoir lequel l’éditeur a utilisé. Les valeurs collées peuvent être en hex majuscules ou minuscules, en Base64, séparées par des deux-points, ou une ligne copiée depuis la sortie de \u003ccode\u003esha256sum\u003c/code\u003e ou du \u003ccode\u003eshasum\u003c/code\u003e BSD.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMode HMAC\u003c/strong\u003e : signez du texte avec une clé secrète, par exemple pour vérifier la signature d’un webhook. La clé peut être du texte UTF-8, de l’hex ou du Base64. CRC-32 est masqué dans ce mode, car ce n’est pas un hachage à clé.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSortie\u003c/strong\u003e en hex minuscules, hex majuscules ou Base64. Copiez une seule valeur, copiez tout ou téléchargez-les dans un fichier texte.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLe texte est encodé en UTF-8 avant le hachage, comme le font par défaut la plupart des langages de programmation.\u003c/p\u003e","title":"Générateur de hachage et somme de contrôle"},{"content":"Ce que fait l’outil Produit du faux texte Lorem Ipsum pour les maquettes, les mises en page et les données de test. Le texte se met à jour dès que vous modifiez un réglage.\nParagraphes, phrases ou mots : jusqu’à 100 paragraphes, 1 000 phrases ou 10 000 mots. Début classique : commencez par « Lorem ipsum dolor sit amet, consectetur adipiscing elit. » ou désactivez-le pour un texte qui commence au hasard. Trois formats de sortie : texte brut avec des lignes vides entre les paragraphes, HTML entouré de balises \u0026lt;p\u0026gt;, ou Markdown. Titres, liste et emphase (HTML et Markdown) : ajoute des titres \u0026lt;h2\u0026gt;, une liste à puces et des mots en gras et en italique, pratique pour vérifier comment une feuille de style ou un CMS affiche du contenu riche. Préréglages rapides pour les quantités courantes, comptage des mots et des caractères en direct, et copie ou téléchargement en .txt, .html ou .md. Les phrases varient en longueur et certaines contiennent des virgules : les retours à la ligne et l’habillage du texte ressemblent à un vrai texte plutôt qu’à un bloc répété.\nMode d’emploi Saisissez un nombre, choisissez paragraphes, phrases ou mots, puis un format. Cliquez sur Régénérer (ou Ctrl+Enter) pour obtenir une nouvelle variante aléatoire, puis copiez le résultat.\nConfidentialité Le texte est généré dans votre navigateur. Rien n’est envoyé à un serveur ; seuls vos réglages sont mémorisés sur cet appareil.\n","permalink":"https://www.softinbit.com/fr/tools/lorem-ipsum/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eProduit du faux texte Lorem Ipsum pour les maquettes, les mises en page et les données de test. Le texte se met à jour dès que vous modifiez un réglage.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eParagraphes, phrases ou mots\u003c/strong\u003e : jusqu’à 100 paragraphes, 1 000 phrases ou 10 000 mots.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDébut classique\u003c/strong\u003e : commencez par « Lorem ipsum dolor sit amet, consectetur adipiscing elit. » ou désactivez-le pour un texte qui commence au hasard.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrois formats de sortie\u003c/strong\u003e : texte brut avec des lignes vides entre les paragraphes, HTML entouré de balises \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e, ou Markdown.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTitres, liste et emphase\u003c/strong\u003e (HTML et Markdown) : ajoute des titres \u003ccode\u003e\u0026lt;h2\u0026gt;\u003c/code\u003e, une liste à puces et des mots en gras et en italique, pratique pour vérifier comment une feuille de style ou un CMS affiche du contenu riche.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePréréglages rapides\u003c/strong\u003e pour les quantités courantes, comptage des mots et des caractères en direct, et copie ou téléchargement en \u003ccode\u003e.txt\u003c/code\u003e, \u003ccode\u003e.html\u003c/code\u003e ou \u003ccode\u003e.md\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLes phrases varient en longueur et certaines contiennent des virgules : les retours à la ligne et l’habillage du texte ressemblent à un vrai texte plutôt qu’à un bloc répété.\u003c/p\u003e","title":"Générateur de Lorem Ipsum"},{"content":"Ce que fait l’outil Crée des mots de passe ou des phrases de passe aléatoires avec le générateur cryptographique de nombres aléatoires de votre navigateur (crypto.getRandomValues). Chaque caractère et chaque mot est tiré par échantillonnage avec rejet : aucun symbole n’est plus probable qu’un autre.\nMode mot de passe\nLongueur de 4 à 128 caractères. Choisissez majuscules, minuscules, chiffres, symboles et vos propres caractères personnalisés. Excluez les caractères semblables comme I, l, 1, O et 0 pour les mots de passe lus à voix haute ou tapés à la main. Au moins un de chaque jeu satisfait les politiques de mots de passe courantes. Le générateur tire uniformément parmi tous les mots de passe qui respectent la règle, et l’entropie affichée est calculée exactement pour cette règle. Générez jusqu’à 500 mots de passe à la fois, puis copiez-les ou téléchargez-les. Le mode phrase de passe choisit des mots dans l’EFF Short Wordlist (1 296 mots anglais, CC BY 3.0, Electronic Frontier Foundation). Chaque mot apporte environ 10,3 bits. Options : nombre de mots, séparateur, majuscule initiale et chiffre ajouté.\nLire l’indicateur de robustesse L’entropie est le logarithme en base 2 du nombre de résultats différents que les réglages actuels peuvent produire. Elle suppose qu’un attaquant connaît vos réglages, ce qui est le pire cas honnête. À titre indicatif : moins de 40 bits, c’est faible ; 60 bits conviennent aux comptes en ligne ; 80 bits ou plus, c’est fort. L’évaluation ne s’applique pas aux mots de passe que vous inventez vous-même.\nConfidentialité Les mots de passe sont générés dans votre navigateur et ne sont jamais envoyés ni enregistrés. Seuls vos réglages (longueur, jeux, nombre de mots) sont mémorisés sur cet appareil.\n","permalink":"https://www.softinbit.com/fr/tools/password/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCrée des mots de passe ou des phrases de passe aléatoires avec le générateur cryptographique de nombres aléatoires de votre navigateur (\u003ccode\u003ecrypto.getRandomValues\u003c/code\u003e). Chaque caractère et chaque mot est tiré par échantillonnage avec rejet : aucun symbole n’est plus probable qu’un autre.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMode mot de passe\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLongueur de 4 à 128 caractères.\u003c/li\u003e\n\u003cli\u003eChoisissez majuscules, minuscules, chiffres, symboles et vos propres caractères \u003cstrong\u003epersonnalisés\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExcluez les caractères semblables\u003c/strong\u003e comme \u003ccode\u003eI\u003c/code\u003e, \u003ccode\u003el\u003c/code\u003e, \u003ccode\u003e1\u003c/code\u003e, \u003ccode\u003eO\u003c/code\u003e et \u003ccode\u003e0\u003c/code\u003e pour les mots de passe lus à voix haute ou tapés à la main.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAu moins un de chaque jeu\u003c/strong\u003e satisfait les politiques de mots de passe courantes. Le générateur tire uniformément parmi tous les mots de passe qui respectent la règle, et l’entropie affichée est calculée exactement pour cette règle.\u003c/li\u003e\n\u003cli\u003eGénérez jusqu’à 500 mots de passe à la fois, puis copiez-les ou téléchargez-les.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLe \u003cstrong\u003emode phrase de passe\u003c/strong\u003e choisit des mots dans l’EFF Short Wordlist (1 296 mots anglais, CC BY 3.0, Electronic Frontier Foundation). Chaque mot apporte environ 10,3 bits. Options : nombre de mots, séparateur, majuscule initiale et chiffre ajouté.\u003c/p\u003e","title":"Générateur de mots de passe"},{"content":"Ce que fait l’outil Choisissez un type de clé et obtenez une nouvelle paire de clés, générée par l’API WebCrypto de votre navigateur :\nRSA 2048, 3072 ou 4096 bits pour RS256/384/512 (PKCS#1 v1.5), PS256/384/512 (PSS) ou le chiffrement RSA-OAEP. ECDSA P-256, P-384 et P-521 (ES256, ES384, ES512). Ed25519 si votre navigateur le prend en charge (détecté automatiquement). Chaque clé est affichée en PEM (PKCS#8 privée, SPKI publique), en JWK avec un kid égal à l’empreinte RFC 7638, en JWKS prêt à l’emploi et en clé publique OpenSSH. Les clés RSA sont aussi disponibles en PKCS#1 (RSA PRIVATE KEY / RSA PUBLIC KEY) et en XML \u0026lt;RSAKeyValue\u0026gt; pour .NET Framework, complété comme l’exige RSAParameters. Chaque nouvelle paire est vérifiée par un aller-retour signature/vérification (ou chiffrement/déchiffrement), et les empreintes SHA-256 SPKI, JWK et OpenSSH sont listées.\nL’utiliser en .NET Le panneau L’utiliser en .NET fournit le code C# pour votre clé : valider des JWT avec AddJwtBearer et RsaSecurityKey / ECDsaSecurityKey (avec le bon kid et le bon algorithme), émettre des jetons avec JsonWebTokenHandler, charger et convertir des clés avec ImportFromPem, le chiffrement RSA-OAEP avec sa limite de taille, et la voie XML de .NET Framework.\nConvertir des clés existantes Passez à Convertir une clé et collez ou déposez un PEM (PKCS#8, SPKI, PKCS#1, SEC1 EC PRIVATE KEY), un certificat X.509, un JWK / JWKS ou un XML \u0026lt;RSAKeyValue\u0026gt; pour obtenir tous les autres formats.\nConfidentialité Les clés sont générées et converties dans votre navigateur et ne sont jamais envoyées. Les clés privées ne sont pas enregistrées, pas même dans le stockage local ; seuls vos choix d’options sont mémorisés. Les clés générées dans le navigateur conviennent au développement et aux tests ; conservez les clés de production dans un coffre-fort (vault) ou un HSM.\n","permalink":"https://www.softinbit.com/fr/tools/rsa-keygen/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eChoisissez un type de clé et obtenez une nouvelle paire de clés, générée par l’API WebCrypto de votre navigateur :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRSA\u003c/strong\u003e 2048, 3072 ou 4096 bits pour RS256/384/512 (PKCS#1 v1.5), PS256/384/512 (PSS) ou le chiffrement RSA-OAEP.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eECDSA\u003c/strong\u003e P-256, P-384 et P-521 (ES256, ES384, ES512).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEd25519\u003c/strong\u003e si votre navigateur le prend en charge (détecté automatiquement).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChaque clé est affichée en \u003cstrong\u003ePEM\u003c/strong\u003e (PKCS#8 privée, SPKI publique), en \u003cstrong\u003eJWK\u003c/strong\u003e avec un \u003ccode\u003ekid\u003c/code\u003e égal à l’empreinte RFC 7638, en \u003cstrong\u003eJWKS\u003c/strong\u003e prêt à l’emploi et en clé publique \u003cstrong\u003eOpenSSH\u003c/strong\u003e. Les clés RSA sont aussi disponibles en \u003cstrong\u003ePKCS#1\u003c/strong\u003e (\u003ccode\u003eRSA PRIVATE KEY\u003c/code\u003e / \u003ccode\u003eRSA PUBLIC KEY\u003c/code\u003e) et en \u003cstrong\u003eXML \u003ccode\u003e\u0026lt;RSAKeyValue\u0026gt;\u003c/code\u003e\u003c/strong\u003e pour .NET Framework, complété comme l’exige \u003ccode\u003eRSAParameters\u003c/code\u003e. Chaque nouvelle paire est vérifiée par un aller-retour signature/vérification (ou chiffrement/déchiffrement), et les empreintes SHA-256 SPKI, JWK et OpenSSH sont listées.\u003c/p\u003e","title":"Générateur de paires de clés RSA et ECDSA"},{"content":"Ce que fait l’outil Collez une chaîne de connexion : l’outil détermine à quel fournisseur elle appartient, la découpe en champs, explique chaque mot-clé et signale les réglages qui posent problème. Vous pouvez aussi choisir un fournisseur et créer une chaîne de connexion de zéro dans le formulaire.\nPris en charge : SQL Server (Microsoft.Data.SqlClient), PostgreSQL (Npgsql), MySQL / MariaDB (MySqlConnector), SQLite (Microsoft.Data.Sqlite), Redis (chaînes de configuration StackExchange.Redis), RabbitMQ (URI amqp:// / amqps://) et MongoDB (mongodb:// et mongodb+srv://).\nFonctions notables Synonymes résolus : Server, Address et Data Source désignent le même mot-clé, tout comme Database et Initial Catalog. Les mots-clés inconnus sont signalés avec une suggestion « vouliez-vous dire ». Règles de guillemets ADO.NET : les valeurs contenant ; ou des guillemets sont mises entre guillemets comme l’attend DbConnectionStringBuilder, et les erreurs d’analyse indiquent la ligne et la colonne. Vérification : TrustServerCertificate=true vers un serveur distant, Encrypt=false, un Application Name manquant, User ID en même temps que Integrated Security, l’utilisateur RabbitMQ guest sur un hôte distant, abortConnect laissé à sa valeur par défaut, un @ non encodé dans un mot de passe MongoDB, et plus encore. Conversion d’URL : les URL postgresql://, mysql:// et redis:// (telles que les fournissent de nombreux hébergeurs cloud) sont converties dans la forme à mots-clés qu’attendent les pilotes .NET. Sorties : chaîne normalisée, extrait appsettings.json, variables d’environnement (ConnectionStrings__Name) et code C# utilisant SqlConnectionStringBuilder, NpgsqlConnectionStringBuilder, ConfigurationOptions, ConnectionFactory ou MongoClientSettings. Mode d’emploi Collez la chaîne (ou cliquez sur Exemple), lisez les avertissements, puis modifiez les champs dans Modifier et générer ; l’entrée se met à jour pendant la saisie. Choisissez un onglet de sortie, puis copiez-le ou téléchargez-le. Cochez Remplacer le mot de passe par un espace réservé avant de partager la sortie.\nConfidentialité Tout s’exécute dans votre navigateur. Les mots de passe sont masqués à l’écran jusqu’à ce que vous cliquiez sur Afficher les mots de passe, et la chaîne de connexion collée n’est jamais enregistrée dans le stockage local ni envoyée nulle part.\n","permalink":"https://www.softinbit.com/fr/tools/connection-string/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez une chaîne de connexion : l’outil détermine à quel fournisseur elle appartient, la découpe en champs, explique chaque mot-clé et signale les réglages qui posent problème. Vous pouvez aussi choisir un fournisseur et créer une chaîne de connexion de zéro dans le formulaire.\u003c/p\u003e\n\u003cp\u003ePris en charge : \u003cstrong\u003eSQL Server\u003c/strong\u003e (Microsoft.Data.SqlClient), \u003cstrong\u003ePostgreSQL\u003c/strong\u003e (Npgsql), \u003cstrong\u003eMySQL / MariaDB\u003c/strong\u003e (MySqlConnector), \u003cstrong\u003eSQLite\u003c/strong\u003e (Microsoft.Data.Sqlite), \u003cstrong\u003eRedis\u003c/strong\u003e (chaînes de configuration StackExchange.Redis), \u003cstrong\u003eRabbitMQ\u003c/strong\u003e (URI \u003ccode\u003eamqp://\u003c/code\u003e / \u003ccode\u003eamqps://\u003c/code\u003e) et \u003cstrong\u003eMongoDB\u003c/strong\u003e (\u003ccode\u003emongodb://\u003c/code\u003e et \u003ccode\u003emongodb+srv://\u003c/code\u003e).\u003c/p\u003e","title":"Générateur et analyseur de chaînes de connexion"},{"content":"Ce que fait l’outil Intégrer de petites images sous forme d’URI data: économise une requête HTTP pour les icônes, les modèles d’e-mail et le HTML en un seul fichier. Cet outil convertit dans les deux sens.\nImage → Base64\nDéposez une image, cliquez pour en choisir une ou collez une capture d’écran directement depuis le presse-papiers avec Ctrl+V. Un aperçu affiche le type, les dimensions en pixels, la taille d’origine et la taille en Base64 : vous savez exactement ce que l’encodage ajoute (environ un tiers). Copiez le résultat en data URI, en Base64 brut, en règle CSS background-image, en balise HTML \u0026lt;img\u0026gt; avec width et height renseignés, ou en Markdown. Le type est détecté d’après les octets du fichier : un PNG enregistré en .jpg reçoit quand même le bon type MIME. Base64 → Image\nCollez une data URI ou du Base64 brut (sauts de ligne, remplissage manquant et alphabet compatible URL sont acceptés). Le format est détecté d’après ses octets magiques (PNG, JPEG, GIF, WebP, AVIF, SVG, ICO, BMP, TIFF\u0026hellip;), affiché dans un aperçu et téléchargé avec la bonne extension. Une différence entre le type déclaré et le type réel est signalée. Mode d’emploi Choisissez un sens, puis déposez ou collez. Tout se met à jour immédiatement ; Copier (ou Ctrl+Entrée) place le format sélectionné dans le presse-papiers.\nConfidentialité Les images sont lues et encodées localement dans votre navigateur et ne sont jamais envoyées. La dernière image encodée (si elle est raisonnablement petite) et le dernier Base64 collé sont conservés dans le stockage local de votre navigateur ; Effacer les supprime.\n","permalink":"https://www.softinbit.com/fr/tools/base64-image/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eIntégrer de petites images sous forme d’URI \u003ccode\u003edata:\u003c/code\u003e économise une requête HTTP pour les icônes, les modèles d’e-mail et le HTML en un seul fichier. Cet outil convertit dans les deux sens.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eImage → Base64\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDéposez une image, cliquez pour en choisir une ou collez une capture d’écran directement depuis le presse-papiers avec \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eV\u003c/kbd\u003e.\u003c/li\u003e\n\u003cli\u003eUn aperçu affiche le type, les dimensions en pixels, la taille d’origine et la taille en Base64 : vous savez exactement ce que l’encodage ajoute (environ un tiers).\u003c/li\u003e\n\u003cli\u003eCopiez le résultat en \u003cstrong\u003edata URI\u003c/strong\u003e, en \u003cstrong\u003eBase64 brut\u003c/strong\u003e, en règle CSS \u003cstrong\u003e\u003ccode\u003ebackground-image\u003c/code\u003e\u003c/strong\u003e, en balise HTML \u003cstrong\u003e\u003ccode\u003e\u0026lt;img\u0026gt;\u003c/code\u003e\u003c/strong\u003e avec \u003ccode\u003ewidth\u003c/code\u003e et \u003ccode\u003eheight\u003c/code\u003e renseignés, ou en \u003cstrong\u003eMarkdown\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eLe type est détecté d’après les octets du fichier : un PNG enregistré en \u003ccode\u003e.jpg\u003c/code\u003e reçoit quand même le bon type MIME.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBase64 → Image\u003c/strong\u003e\u003c/p\u003e","title":"Image en Base64"},{"content":"Ce que fait l’outil Collez une chaîne qui se comporte mal (un mot de passe « correct », une commande qui échoue, deux noms qui semblent identiques mais ne le sont pas) : chaque caractère est vérifié pendant la saisie.\nLe panneau Problèmes liste ce qui a été trouvé, avec ligne et colonne : caractères de largeur nulle (ZWSP, ZWNJ, ZWJ, word joiner), BOM, espaces insécables et autres espaces inhabituelles, contrôles bidirectionnels, y compris non fermés (le motif Trojan Source), traits d’union conditionnels, caractères de contrôle, caractères d’étiquette invisibles avec le texte caché décodé, sosies cyrilliques et grecs, formes pleine chasse, ponctuation typographique, chiffres non ASCII, signes combinants empilés, différences NFC, fins de ligne mélangées et mojibake comme Ã© ou Ä±. La vue visible affiche le texte avec chaque caractère invisible sous forme de badge et les sosies soulignés. Cliquez sur l’un d’eux pour le sélectionner dans l’éditeur. Le tableau des caractères donne pour chaque point de code la valeur U+, le nom, la catégorie générale, l’écriture, les octets UTF-8, les unités UTF-16 et l’échappement C#. Exportable en CSV. Comptages des points de code, graphèmes, unités UTF-16 (ce que renvoie string.Length) et octets UTF-8. Corriger Un clic suffit pour supprimer les caractères invisibles, remplacer les espaces inhabituelles par des espaces normales, normaliser en NFC, remplacer les sosies ou la ponctuation typographique par de l’ASCII, réparer le mojibake ou unifier les fins de ligne. Chaque correction peut être annulée. Un vrai texte russe, grec ou turc n’est pas modifié : les sosies ne sont signalés que dans des mots latins ou des mots qui les imitent. Les notes sur la casse expliquent le i turc avec et sans point (İ, ı) et pourquoi les identifiants .NET exigent ToUpperInvariant et des comparaisons ordinales.\nConfidentialité Votre texte ne quitte jamais le navigateur. Il est conservé dans le stockage local pour survivre à un rechargement ; utilisez Effacer pour le supprimer.\n","permalink":"https://www.softinbit.com/fr/tools/unicode-inspector/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez une chaîne qui se comporte mal (un mot de passe « correct », une commande qui échoue, deux noms qui semblent identiques mais ne le sont pas) : chaque caractère est vérifié pendant la saisie.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLe \u003cstrong\u003epanneau Problèmes\u003c/strong\u003e liste ce qui a été trouvé, avec ligne et colonne : caractères de largeur nulle (ZWSP, ZWNJ, ZWJ, word joiner), BOM, espaces insécables et autres espaces inhabituelles, contrôles bidirectionnels, y compris non fermés (le motif \u003cem\u003eTrojan Source\u003c/em\u003e), traits d’union conditionnels, caractères de contrôle, caractères d’étiquette invisibles avec le texte caché décodé, sosies cyrilliques et grecs, formes pleine chasse, ponctuation typographique, chiffres non ASCII, signes combinants empilés, différences NFC, fins de ligne mélangées et mojibake comme \u003ccode\u003eÃ©\u003c/code\u003e ou \u003ccode\u003eÄ±\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eLa \u003cstrong\u003evue visible\u003c/strong\u003e affiche le texte avec chaque caractère invisible sous forme de badge et les sosies soulignés. Cliquez sur l’un d’eux pour le sélectionner dans l’éditeur.\u003c/li\u003e\n\u003cli\u003eLe \u003cstrong\u003etableau des caractères\u003c/strong\u003e donne pour chaque point de code la valeur \u003ccode\u003eU+\u003c/code\u003e, le nom, la catégorie générale, l’écriture, les octets UTF-8, les unités UTF-16 et l’échappement C#. Exportable en CSV.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eComptages\u003c/strong\u003e des points de code, graphèmes, unités UTF-16 (ce que renvoie \u003ccode\u003estring.Length\u003c/code\u003e) et octets UTF-8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"corriger\"\u003eCorriger\u003c/h2\u003e\n\u003cp\u003eUn clic suffit pour supprimer les caractères invisibles, remplacer les espaces inhabituelles par des espaces normales, normaliser en NFC, remplacer les sosies ou la ponctuation typographique par de l’ASCII, réparer le mojibake ou unifier les fins de ligne. Chaque correction peut être annulée. Un vrai texte russe, grec ou turc n’est pas modifié : les sosies ne sont signalés que dans des mots latins ou des mots qui les imitent. Les notes sur la casse expliquent le i turc avec et sans point (\u003ccode\u003eİ\u003c/code\u003e, \u003ccode\u003eı\u003c/code\u003e) et pourquoi les identifiants .NET exigent \u003ccode\u003eToUpperInvariant\u003c/code\u003e et des comparaisons ordinales.\u003c/p\u003e","title":"Inspecteur Unicode et caractères invisibles"},{"content":"Ce que fait l’outil Collez un document JSON (une réponse d’API, un fichier de configuration, la charge utile d’un webhook) et obtenez des types C# à coller directement dans un projet .NET. La sortie se met à jour pendant la saisie.\nPourquoi c’est mieux que « Paste JSON as Classes » Examine chaque élément du tableau, pas seulement le premier. Une propriété absente de certains éléments, ou null dans certains, devient nullable (int?, string?), et un nombre qui vaut 1 dans un élément et 2.5 dans un autre devient double. Véritable déduction des types : int, ou long si une valeur ne tient pas ; double ou decimal pour les fractions ; bool ; Guid ; DateTimeOffset pour les horodatages avec décalage ou Z, DateTime sans, DateOnly pour les dates simples. Les valeurs mixtes deviennent JsonElement. Les structures identiques ne sont générées qu’une fois. shippingAddress et billingAddress avec les mêmes propriétés partagent un seul type Address. Les objets indexés par ID ({\u0026quot;1\u0026quot;: {...}, \u0026quot;2\u0026quot;: {...}}) deviennent Dictionary\u0026lt;string, T\u0026gt;. Des identifiants toujours valides : user_id devient UserId, les noms commençant par un chiffre reçoivent un préfixe _, les mots-clés C# sont échappés avec @ et les conflits avec le nom de la classe ou d’autres propriétés sont renommés. Attributs System.Text.Json uniquement là où il le faut. « Paramètres Web par défaut » suppose ASP.NET Core / JsonSerializerOptions.Web (camelCase) ; « diffère exactement » couvre aussi le JsonSerializer par défaut, sensible à la casse. C# moderne : records avec init ou classes avec set, types référence nullables avec initialiseurs sûrs, membres required facultatifs, espace de noms à portée fichier. Comment l’utiliser Collez du JSON ou déposez un fichier .json, choisissez le nom du type racine et l’espace de noms, puis copiez ou téléchargez le fichier .cs. La ligne d’état indique l’appel JsonSerializer.Deserialize\u0026lt;T\u0026gt; à utiliser.\nConfidentialité La conversion s’exécute entièrement dans votre navigateur. Votre JSON n’est jamais envoyé ; la dernière saisie est conservée dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/json-to-csharp/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez un document JSON (une réponse d’API, un fichier de configuration, la charge utile d’un webhook) et obtenez des types C# à coller directement dans un projet .NET. La sortie se met à jour pendant la saisie.\u003c/p\u003e\n\u003ch2 id=\"pourquoi-cest-mieux-que-paste-json-as-classes\"\u003ePourquoi c’est mieux que « Paste JSON as Classes »\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eExamine chaque élément du tableau\u003c/strong\u003e, pas seulement le premier. Une propriété absente de certains éléments, ou \u003ccode\u003enull\u003c/code\u003e dans certains, devient nullable (\u003ccode\u003eint?\u003c/code\u003e, \u003ccode\u003estring?\u003c/code\u003e), et un nombre qui vaut \u003ccode\u003e1\u003c/code\u003e dans un élément et \u003ccode\u003e2.5\u003c/code\u003e dans un autre devient \u003ccode\u003edouble\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eVéritable déduction des types\u003c/strong\u003e : \u003ccode\u003eint\u003c/code\u003e, ou \u003ccode\u003elong\u003c/code\u003e si une valeur ne tient pas ; \u003ccode\u003edouble\u003c/code\u003e ou \u003ccode\u003edecimal\u003c/code\u003e pour les fractions ; \u003ccode\u003ebool\u003c/code\u003e ; \u003ccode\u003eGuid\u003c/code\u003e ; \u003ccode\u003eDateTimeOffset\u003c/code\u003e pour les horodatages avec décalage ou \u003ccode\u003eZ\u003c/code\u003e, \u003ccode\u003eDateTime\u003c/code\u003e sans, \u003ccode\u003eDateOnly\u003c/code\u003e pour les dates simples. Les valeurs mixtes deviennent \u003ccode\u003eJsonElement\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes structures identiques ne sont générées qu’une fois.\u003c/strong\u003e \u003ccode\u003eshippingAddress\u003c/code\u003e et \u003ccode\u003ebillingAddress\u003c/code\u003e avec les mêmes propriétés partagent un seul type \u003ccode\u003eAddress\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes objets indexés par ID\u003c/strong\u003e (\u003ccode\u003e{\u0026quot;1\u0026quot;: {...}, \u0026quot;2\u0026quot;: {...}}\u003c/code\u003e) deviennent \u003ccode\u003eDictionary\u0026lt;string, T\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDes identifiants toujours valides\u003c/strong\u003e : \u003ccode\u003euser_id\u003c/code\u003e devient \u003ccode\u003eUserId\u003c/code\u003e, les noms commençant par un chiffre reçoivent un préfixe \u003ccode\u003e_\u003c/code\u003e, les mots-clés C# sont échappés avec \u003ccode\u003e@\u003c/code\u003e et les conflits avec le nom de la classe ou d’autres propriétés sont renommés.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAttributs System.Text.Json\u003c/strong\u003e uniquement là où il le faut. « Paramètres Web par défaut » suppose ASP.NET Core / \u003ccode\u003eJsonSerializerOptions.Web\u003c/code\u003e (camelCase) ; « diffère exactement » couvre aussi le \u003ccode\u003eJsonSerializer\u003c/code\u003e par défaut, sensible à la casse.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eC# moderne\u003c/strong\u003e : records avec \u003ccode\u003einit\u003c/code\u003e ou classes avec \u003ccode\u003eset\u003c/code\u003e, types référence nullables avec initialiseurs sûrs, membres \u003ccode\u003erequired\u003c/code\u003e facultatifs, espace de noms à portée fichier.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003cp\u003eCollez du JSON ou déposez un fichier \u003ccode\u003e.json\u003c/code\u003e, choisissez le nom du type racine et l’espace de noms, puis copiez ou téléchargez le fichier \u003ccode\u003e.cs\u003c/code\u003e. La ligne d’état indique l’appel \u003ccode\u003eJsonSerializer.Deserialize\u0026lt;T\u0026gt;\u003c/code\u003e à utiliser.\u003c/p\u003e","title":"JSON vers classes C#"},{"content":"Ce que fait l’outil Collez un exemple de JSON, par exemple une réponse d’API de votre backend ASP.NET Core ou le contenu d’un webhook, et obtenez des déclarations TypeScript à intégrer directement dans un projet frontend. La sortie se met à jour pendant la saisie, et un second onglet présente le même modèle sous forme de schéma Zod pour la validation à l’exécution.\nComment les types sont déduits Chaque élément du tableau est examiné, pas seulement le premier. Une clé absente de certains éléments devient optionnelle (name?: string). Une clé parfois null devient string | null. Les tableaux mixtes deviennent des unions, par exemple (string | number)[]. Un tableau vide devient unknown[]. Les structures identiques sont déclarées une seule fois. shippingAddress et billingAddress, qui ont les mêmes propriétés, partagent une seule interface Address. Les objets indexés par des ID ({\u0026quot;101\u0026quot;: {...}, \u0026quot;102\u0026quot;: {...}}) deviennent Record\u0026lt;string, T\u0026gt;. Une sortie toujours valide : les noms de propriété qui ne sont pas des identifiants (\u0026quot;first-name\u0026quot;, \u0026quot;2fa\u0026quot;) sont placés entre guillemets. Les noms de type sont en PascalCase et au singulier pour les éléments de tableau. Les noms qui masqueraient des types intégrés comme Date ou Error reçoivent un suffixe. Les dates ISO restent des string par défaut, avec un commentaire indiquant s’il s’agit d’une date ou d’une date-heure. Vous pouvez aussi les typer en Date si vous les reconvertissez après l’analyse. Le schéma Zod les vérifie avec .datetime() ou .date() (Zod 3.23 ou ultérieur). Options Choisissez interface ou type, activez ou non export et readonly, choisissez T[] ou Array\u0026lt;T\u0026gt; et définissez le nom du type racine. Un tableau à la racine produit un type d’élément et un alias ...List.\nUtilisation Collez du JSON ou déposez un fichier .json, puis copiez ou téléchargez la sortie TypeScript ou Zod.\nConfidentialité La conversion s’exécute entièrement dans votre navigateur. Votre JSON n’est jamais envoyé ; la dernière saisie est conservée dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/json-to-typescript/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez un exemple de JSON, par exemple une réponse d’API de votre backend ASP.NET Core ou le contenu d’un webhook, et obtenez des déclarations TypeScript à intégrer directement dans un projet frontend. La sortie se met à jour pendant la saisie, et un second onglet présente le même modèle sous forme de schéma \u003ca href=\"https://zod.dev\"\u003eZod\u003c/a\u003e pour la validation à l’exécution.\u003c/p\u003e\n\u003ch2 id=\"comment-les-types-sont-déduits\"\u003eComment les types sont déduits\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChaque élément du tableau est examiné\u003c/strong\u003e, pas seulement le premier. Une clé absente de certains éléments devient optionnelle (\u003ccode\u003ename?: string\u003c/code\u003e). Une clé parfois \u003ccode\u003enull\u003c/code\u003e devient \u003ccode\u003estring | null\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes tableaux mixtes deviennent des unions\u003c/strong\u003e, par exemple \u003ccode\u003e(string | number)[]\u003c/code\u003e. Un tableau vide devient \u003ccode\u003eunknown[]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes structures identiques sont déclarées une seule fois.\u003c/strong\u003e \u003ccode\u003eshippingAddress\u003c/code\u003e et \u003ccode\u003ebillingAddress\u003c/code\u003e, qui ont les mêmes propriétés, partagent une seule interface \u003ccode\u003eAddress\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes objets indexés par des ID\u003c/strong\u003e (\u003ccode\u003e{\u0026quot;101\u0026quot;: {...}, \u0026quot;102\u0026quot;: {...}}\u003c/code\u003e) deviennent \u003ccode\u003eRecord\u0026lt;string, T\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUne sortie toujours valide\u003c/strong\u003e : les noms de propriété qui ne sont pas des identifiants (\u003ccode\u003e\u0026quot;first-name\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;2fa\u0026quot;\u003c/code\u003e) sont placés entre guillemets. Les noms de type sont en PascalCase et au singulier pour les éléments de tableau. Les noms qui masqueraient des types intégrés comme \u003ccode\u003eDate\u003c/code\u003e ou \u003ccode\u003eError\u003c/code\u003e reçoivent un suffixe.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes dates ISO\u003c/strong\u003e restent des \u003ccode\u003estring\u003c/code\u003e par défaut, avec un commentaire indiquant s’il s’agit d’une date ou d’une date-heure. Vous pouvez aussi les typer en \u003ccode\u003eDate\u003c/code\u003e si vous les reconvertissez après l’analyse. Le schéma Zod les vérifie avec \u003ccode\u003e.datetime()\u003c/code\u003e ou \u003ccode\u003e.date()\u003c/code\u003e (Zod 3.23 ou ultérieur).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"options\"\u003eOptions\u003c/h2\u003e\n\u003cp\u003eChoisissez \u003ccode\u003einterface\u003c/code\u003e ou \u003ccode\u003etype\u003c/code\u003e, activez ou non \u003ccode\u003eexport\u003c/code\u003e et \u003ccode\u003ereadonly\u003c/code\u003e, choisissez \u003ccode\u003eT[]\u003c/code\u003e ou \u003ccode\u003eArray\u0026lt;T\u0026gt;\u003c/code\u003e et définissez le nom du type racine. Un tableau à la racine produit un type d’élément et un alias \u003ccode\u003e...List\u003c/code\u003e.\u003c/p\u003e","title":"JSON vers TypeScript"},{"content":"Ce que fait l’outil Collez la sortie de exception.ToString() : l’outil la découpe en une carte par exception, à savoir l’exception externe, chaque exception interne ---\u0026gt; et chaque entrée d’une AggregateException. L’exception la plus interne est marquée comme cause première, et la première frame appartenant à votre code comme origine probable.\nFonctionnalités Code async démystifié : \u0026lt;GetOrderAsync\u0026gt;d__5.MoveNext() devient async OrderService.GetOrderAsync(), \u0026lt;\u0026gt;c__DisplayClass0_0.\u0026lt;Main\u0026gt;b__0 devient une lambda nommée et les fonctions locales retrouvent leur vrai nom. Les frames TaskAwaiter, ExecutionContext et ExceptionDispatchInfo ainsi que les marqueurs --- End of stack trace from previous location --- sont masqués. Survolez une frame pour voir le texte d’origine. Uniquement mon code : les suites de frames du framework sont repliées en groupes dépliables « n frames du framework ». La liste des préfixes (System., Microsoft., Npgsql.…) est modifiable. Accepte les entrées désordonnées : sorties Serilog et Microsoft.Extensions.Logging, lignes de log CLEF / JSON (@x), JSON d’exception d’Application Insights, traces avec des \\r\\n échappés, texte de la developer exception page d’ASP.NET Core, formats .NET Framework et Mono. Fichier et ligne pour chaque frame. Cliquez pour copier path:line. Exportez la trace nettoyée en texte ou en Markdown prêt pour une issue GitHub ou Azure DevOps. Mode d’emploi Collez l’exception, ou ouvrez ou déposez un fichier de log. Lisez d’abord la frame d’origine mise en évidence, puis dépliez les frames du framework seulement si nécessaire. Copiez le texte nettoyé ou le Markdown dans votre ticket. Confidentialité L’analyse se fait dans votre navigateur et rien n’est envoyé. Votre dernière saisie et la liste des préfixes sont conservées dans le stockage local ; Effacer supprime la saisie.\n","permalink":"https://www.softinbit.com/fr/tools/stack-trace/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez la sortie de \u003ccode\u003eexception.ToString()\u003c/code\u003e : l’outil la découpe en une carte par exception, à savoir l’exception externe, chaque exception interne \u003ccode\u003e---\u0026gt;\u003c/code\u003e et chaque entrée d’une \u003ccode\u003eAggregateException\u003c/code\u003e. L’exception la plus interne est marquée comme \u003cstrong\u003ecause première\u003c/strong\u003e, et la première frame appartenant à votre code comme \u003cstrong\u003eorigine probable\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCode async démystifié\u003c/strong\u003e : \u003ccode\u003e\u0026lt;GetOrderAsync\u0026gt;d__5.MoveNext()\u003c/code\u003e devient \u003ccode\u003easync OrderService.GetOrderAsync()\u003c/code\u003e, \u003ccode\u003e\u0026lt;\u0026gt;c__DisplayClass0_0.\u0026lt;Main\u0026gt;b__0\u003c/code\u003e devient une lambda nommée et les fonctions locales retrouvent leur vrai nom. Les frames \u003ccode\u003eTaskAwaiter\u003c/code\u003e, \u003ccode\u003eExecutionContext\u003c/code\u003e et \u003ccode\u003eExceptionDispatchInfo\u003c/code\u003e ainsi que les marqueurs \u003ccode\u003e--- End of stack trace from previous location ---\u003c/code\u003e sont masqués. Survolez une frame pour voir le texte d’origine.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUniquement mon code\u003c/strong\u003e : les suites de frames du framework sont repliées en groupes dépliables « n frames du framework ». La liste des préfixes (\u003ccode\u003eSystem.\u003c/code\u003e, \u003ccode\u003eMicrosoft.\u003c/code\u003e, \u003ccode\u003eNpgsql.\u003c/code\u003e…) est modifiable.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAccepte les entrées désordonnées\u003c/strong\u003e : sorties Serilog et Microsoft.Extensions.Logging, lignes de log CLEF / JSON (\u003ccode\u003e@x\u003c/code\u003e), JSON d’exception d’Application Insights, traces avec des \u003ccode\u003e\\r\\n\u003c/code\u003e échappés, texte de la developer exception page d’ASP.NET Core, formats .NET Framework et Mono.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFichier et ligne\u003c/strong\u003e pour chaque frame. Cliquez pour copier \u003ccode\u003epath:line\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExportez\u003c/strong\u003e la trace nettoyée en texte ou en Markdown prêt pour une issue GitHub ou Azure DevOps.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"mode-demploi\"\u003eMode d’emploi\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eCollez l’exception, ou ouvrez ou déposez un fichier de log.\u003c/li\u003e\n\u003cli\u003eLisez d’abord la frame d’origine mise en évidence, puis dépliez les frames du framework seulement si nécessaire.\u003c/li\u003e\n\u003cli\u003eCopiez le texte nettoyé ou le Markdown dans votre ticket.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"confidentialité\"\u003eConfidentialité\u003c/h2\u003e\n\u003cp\u003eL’analyse se fait dans votre navigateur et rien n’est envoyé. Votre dernière saisie et la liste des préfixes sont conservées dans le stockage local ; \u003cstrong\u003eEffacer\u003c/strong\u003e supprime la saisie.\u003c/p\u003e","title":"Nettoyeur de stack traces .NET"},{"content":"Ce qu’il fait Ouvrez, déposez ou collez une image (une capture d’écran depuis le presse-papiers fonctionne aussi) et voyez-la simultanément à travers sept types de déficience de la vision des couleurs :\nProtanopie / protanomalie : cônes sensibles au rouge absents ou affaiblis. Deutéranopie / deutéranomalie : cônes sensibles au vert absents ou affaiblis. Tritanopie / tritanomalie : cônes sensibles au bleu absents ou affaiblis. Achromatopsie : aucune vision des couleurs, seulement la luminosité. Choisissez un type pour le comparer à l’original avec le curseur : faites glisser sur l’image ou utilisez les touches fléchées sur le curseur. Téléchargez n’importe quelle simulation en PNG en taille réelle, ou toutes à la fois.\nComment ça marche La simulation utilise les matrices de Machado, Oliveira et Fernandes (2009), A Physiologically-based Model for Simulation of Color Vision Deficiency : sévérité 1,0 pour les types en -opie et 0,6 pour les types en -anomalie. Les pixels sont convertis de sRGB en RVB linéaire avant l’application de la matrice, puis reconvertis, car le modèle est défini sur la lumière linéaire ; l’appliquer à des valeurs encodées en gamma fausse le résultat. L’achromatopsie utilise les coefficients de luminance de la Rec. 709.\nLes grandes images sont réduites pour l’aperçu à l’écran afin que la page reste rapide ; les téléchargements sont calculés à la résolution d’origine (jusqu’à 40 mégapixels).\nConseils Vérifiez qu’une information n’est jamais transmise par la couleur seule : pastilles d’état, séries de graphiques et états d’erreur doivent aussi se distinguer par la forme, le libellé, le motif ou la luminosité. Le tableau de bord d’exemple montre comment les paires rouge/vert se confondent pour les personnes protanopes et deutéranopes.\nConfidentialité Les images sont traitées sur un canvas dans votre navigateur et ne sont jamais envoyées.\n","permalink":"https://www.softinbit.com/fr/tools/color-blind-simulator/","summary":"\u003ch2 id=\"ce-quil-fait\"\u003eCe qu’il fait\u003c/h2\u003e\n\u003cp\u003eOuvrez, déposez ou collez une image (une capture d’écran depuis le presse-papiers fonctionne aussi) et voyez-la simultanément à travers sept types de déficience de la vision des couleurs :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eProtanopie / protanomalie\u003c/strong\u003e : cônes sensibles au rouge absents ou affaiblis.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDeutéranopie / deutéranomalie\u003c/strong\u003e : cônes sensibles au vert absents ou affaiblis.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTritanopie / tritanomalie\u003c/strong\u003e : cônes sensibles au bleu absents ou affaiblis.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAchromatopsie\u003c/strong\u003e : aucune vision des couleurs, seulement la luminosité.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChoisissez un type pour le comparer à l’original avec le \u003cstrong\u003ecurseur\u003c/strong\u003e : faites glisser sur l’image ou utilisez les touches fléchées sur le curseur. Téléchargez n’importe quelle simulation en PNG en taille réelle, ou toutes à la fois.\u003c/p\u003e","title":"Simulateur de daltonisme"},{"content":"Ce que fait l’outil Saisissez un motif : chaque correspondance est surlignée dans le texte de test au fil de la frappe. L’onglet Correspondances liste chaque correspondance avec son index, ses groupes de capture numérotés et ses groupes nommés (avec leurs positions). Remplacer donne un aperçu des substitutions $1, $\u0026lt;name\u0026gt; et $\u0026amp;, et Code vous fournit des extraits JavaScript et C# prêts à coller.\nActivez ou désactivez les drapeaux g i m s u y, ainsi que d et v si votre navigateur les prend en charge. Cliquez sur un motif de la bibliothèque (e-mail, URL, GUID, IPv4, date ISO, semver, couleur hex…) pour partir d’une regex éprouvée. Les erreurs de syntaxe affichent le message du moteur et, lorsqu’elle peut être déterminée, la position dans le motif. La recherche s’exécute dans un Web Worker avec une limite de temps : un motif comme (a+)+$ s’arrête avec un message clair au lieu de figer l’onglet. Regex JavaScript et .NET Les drapeaux correspondent à RegexOptions : i = IgnoreCase, m = Multiline, s = Singleline. Il n’y a pas de g en .NET : appelez Matches() au lieu de Match(). y, u et v n’ont pas d’option directe. Les groupes nommés s’écrivent (?\u0026lt;name\u0026gt;...) dans les deux ; .NET accepte aussi (?'name'...). Dans les remplacements, JavaScript écrit $\u0026lt;name\u0026gt; et .NET ${name}. Le lookbehind (?\u0026lt;=...) / (?\u0026lt;!...) fonctionne dans les deux. Parmi les fonctions propres à .NET figurent les groupes d’équilibrage, les ancres \\A / \\z, les options en ligne (?x) et RightToLeft. En .NET, \\d correspond à tout chiffre Unicode, sauf si vous passez RegexOptions.ECMAScript ; en JavaScript, il vaut toujours [0-9]. Confidentialité Votre motif et votre texte restent dans votre navigateur et ne sont enregistrés que dans le stockage local, pour qu’un rechargement conserve votre travail.\n","permalink":"https://www.softinbit.com/fr/tools/regex-tester/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eSaisissez un motif : chaque correspondance est surlignée dans le texte de test au fil de la frappe. L’onglet \u003cstrong\u003eCorrespondances\u003c/strong\u003e liste chaque correspondance avec son index, ses groupes de capture numérotés et ses groupes nommés (avec leurs positions). \u003cstrong\u003eRemplacer\u003c/strong\u003e donne un aperçu des substitutions \u003ccode\u003e$1\u003c/code\u003e, \u003ccode\u003e$\u0026lt;name\u0026gt;\u003c/code\u003e et \u003ccode\u003e$\u0026amp;\u003c/code\u003e, et \u003cstrong\u003eCode\u003c/strong\u003e vous fournit des extraits JavaScript et C# prêts à coller.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eActivez ou désactivez les drapeaux \u003ccode\u003eg i m s u y\u003c/code\u003e, ainsi que \u003ccode\u003ed\u003c/code\u003e et \u003ccode\u003ev\u003c/code\u003e si votre navigateur les prend en charge.\u003c/li\u003e\n\u003cli\u003eCliquez sur un motif de la bibliothèque (e-mail, URL, GUID, IPv4, date ISO, semver, couleur hex…) pour partir d’une regex éprouvée.\u003c/li\u003e\n\u003cli\u003eLes erreurs de syntaxe affichent le message du moteur et, lorsqu’elle peut être déterminée, la position dans le motif.\u003c/li\u003e\n\u003cli\u003eLa recherche s’exécute dans un Web Worker avec une limite de temps : un motif comme \u003ccode\u003e(a+)+$\u003c/code\u003e s’arrête avec un message clair au lieu de figer l’onglet.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"regex-javascript-et-net\"\u003eRegex JavaScript et .NET\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLes drapeaux correspondent à \u003ccode\u003eRegexOptions\u003c/code\u003e\u003c/strong\u003e : \u003ccode\u003ei\u003c/code\u003e = \u003ccode\u003eIgnoreCase\u003c/code\u003e, \u003ccode\u003em\u003c/code\u003e = \u003ccode\u003eMultiline\u003c/code\u003e, \u003ccode\u003es\u003c/code\u003e = \u003ccode\u003eSingleline\u003c/code\u003e. Il n’y a pas de \u003ccode\u003eg\u003c/code\u003e en .NET : appelez \u003ccode\u003eMatches()\u003c/code\u003e au lieu de \u003ccode\u003eMatch()\u003c/code\u003e. \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003eu\u003c/code\u003e et \u003ccode\u003ev\u003c/code\u003e n’ont pas d’option directe.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes groupes nommés\u003c/strong\u003e s’écrivent \u003ccode\u003e(?\u0026lt;name\u0026gt;...)\u003c/code\u003e dans les deux ; .NET accepte aussi \u003ccode\u003e(?'name'...)\u003c/code\u003e. Dans les remplacements, JavaScript écrit \u003ccode\u003e$\u0026lt;name\u0026gt;\u003c/code\u003e et .NET \u003ccode\u003e${name}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLe lookbehind\u003c/strong\u003e \u003ccode\u003e(?\u0026lt;=...)\u003c/code\u003e / \u003ccode\u003e(?\u0026lt;!...)\u003c/code\u003e fonctionne dans les deux. Parmi les fonctions propres à .NET figurent les groupes d’équilibrage, les ancres \u003ccode\u003e\\A\u003c/code\u003e / \u003ccode\u003e\\z\u003c/code\u003e, les options en ligne \u003ccode\u003e(?x)\u003c/code\u003e et \u003ccode\u003eRightToLeft\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eEn .NET, \u003ccode\u003e\\d\u003c/code\u003e correspond à tout chiffre Unicode, sauf si vous passez \u003ccode\u003eRegexOptions.ECMAScript\u003c/code\u003e ; en JavaScript, il vaut toujours \u003ccode\u003e[0-9]\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"confidentialité\"\u003eConfidentialité\u003c/h2\u003e\n\u003cp\u003eVotre motif et votre texte restent dans votre navigateur et ne sont enregistrés que dans le stockage local, pour qu’un rechargement conserve votre travail.\u003c/p\u003e","title":"Testeur de regex"},{"content":"Ce que fait l’outil Collez du JSON, saisissez une expression JSONPath : les correspondances se mettent à jour au fil de la frappe. Les résultats s’affichent en JSON mis en forme, et chaque correspondance est listée avec son chemin normalisé ($['orders'][0]['id']) et son JSON Pointer (/orders/0/id), pour que vous puissiez copier l’emplacement exact dans du code, un JSON Patch ou une assertion de test.\nBasculez la sortie entre valeurs, chemins, pointeurs ou paires chemin/valeur, puis copiez-la ou téléchargez-la. Cliquez sur un exemple de l’aide-mémoire pour essayer les jokers, la descente récursive (..), les filtres (?(@.price \u0026lt; 10)), les tranches ([-1:]), les unions et les noms de propriétés (~). Le JSON non valide est signalé avec la ligne, la colonne et un repère sur le caractère exact : une virgule manquante se trouve en quelques secondes. Ouvrez ou déposez un fichier .json au lieu de coller son contenu. Mode d’emploi Collez votre JSON à gauche (ou cliquez sur Exemple). Saisissez une requête commençant par $, par exemple $.orders[?(@.total \u0026gt; 40)].id. Cliquez sur le chemin d’un résultat pour le copier. Les requêtes sont évaluées avec JSONPath-Plus, en utilisant son évaluateur d’expressions sécurisé pour les filtres : @ désigne l’élément courant, et les comparaisons, \u0026amp;\u0026amp;, || ainsi que de simples appels de méthode comme @.tags.includes('x') fonctionnent. D’autres implémentations de JSONPath (par exemple RFC 9535 ou SelectTokens de Newtonsoft) peuvent différer dans la syntaxe des filtres.\nConfidentialité Votre JSON est traité dans votre navigateur et stocké uniquement dans le stockage local. Rien n’est envoyé.\n","permalink":"https://www.softinbit.com/fr/tools/jsonpath-tester/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez du JSON, saisissez une expression JSONPath : les correspondances se mettent à jour au fil de la frappe. Les résultats s’affichent en JSON mis en forme, et chaque correspondance est listée avec son \u003cstrong\u003echemin normalisé\u003c/strong\u003e (\u003ccode\u003e$['orders'][0]['id']\u003c/code\u003e) et son \u003cstrong\u003eJSON Pointer\u003c/strong\u003e (\u003ccode\u003e/orders/0/id\u003c/code\u003e), pour que vous puissiez copier l’emplacement exact dans du code, un JSON Patch ou une assertion de test.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBasculez la sortie entre valeurs, chemins, pointeurs ou paires chemin/valeur, puis copiez-la ou téléchargez-la.\u003c/li\u003e\n\u003cli\u003eCliquez sur un exemple de l’aide-mémoire pour essayer les jokers, la descente récursive (\u003ccode\u003e..\u003c/code\u003e), les filtres (\u003ccode\u003e?(@.price \u0026lt; 10)\u003c/code\u003e), les tranches (\u003ccode\u003e[-1:]\u003c/code\u003e), les unions et les noms de propriétés (\u003ccode\u003e~\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eLe JSON non valide est signalé avec la ligne, la colonne et un repère sur le caractère exact : une virgule manquante se trouve en quelques secondes.\u003c/li\u003e\n\u003cli\u003eOuvrez ou déposez un fichier \u003ccode\u003e.json\u003c/code\u003e au lieu de coller son contenu.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"mode-demploi\"\u003eMode d’emploi\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eCollez votre JSON à gauche (ou cliquez sur \u003cstrong\u003eExemple\u003c/strong\u003e).\u003c/li\u003e\n\u003cli\u003eSaisissez une requête commençant par \u003ccode\u003e$\u003c/code\u003e, par exemple \u003ccode\u003e$.orders[?(@.total \u0026gt; 40)].id\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eCliquez sur le chemin d’un résultat pour le copier.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eLes requêtes sont évaluées avec \u003ca href=\"https://github.com/JSONPath-Plus/JSONPath\"\u003eJSONPath-Plus\u003c/a\u003e, en utilisant son évaluateur d’expressions sécurisé pour les filtres : \u003ccode\u003e@\u003c/code\u003e désigne l’élément courant, et les comparaisons, \u003ccode\u003e\u0026amp;\u0026amp;\u003c/code\u003e, \u003ccode\u003e||\u003c/code\u003e ainsi que de simples appels de méthode comme \u003ccode\u003e@.tags.includes('x')\u003c/code\u003e fonctionnent. D’autres implémentations de JSONPath (par exemple RFC 9535 ou \u003ccode\u003eSelectTokens\u003c/code\u003e de Newtonsoft) peuvent différer dans la syntaxe des filtres.\u003c/p\u003e","title":"Testeur JSONPath"},{"content":"Ce que fait l’outil Collez les versions publiées d’un paquet, saisissez une plage et voyez immédiatement quelles versions la satisfont et laquelle serait installée.\nPlages NuGet : versions minimales (1.0), intervalles ([1.0,2.0), (,1.0]), versions exactes ([1.0]) et versions flottantes (1.*, 1.0.*, 1.0.0-*, *-*). Chaque plage est expliquée par une expression mathématique simple et normalisée. Plages npm : comparateurs, ^, ~, plages x, plages avec trait d’union et ||, développés exactement comme dans node-semver (^1.2.3 devient \u0026gt;=1.2.3 \u0026lt;2.0.0-0), y compris la règle de npm sur les préversions et l’option includePrerelease. Résolution : NuGet choisit la version applicable la plus basse (les plages flottantes prennent la correspondance la plus haute), npm la plus haute. L’outil marque la gagnante, explique pourquoi les autres ont été écartées (par exemple une préversion dans une plage NuGet stable) et signale les avertissements de restauration comme NU1603, NU1102 et NU1103. Conversion entre les deux syntaxes lorsqu’une plage est un intervalle unique. Trier, comparer et incrémenter La partie inférieure trie la liste selon la priorité SemVer 2.0.0 (ou les règles NuGet : versions en quatre parties, étiquettes insensibles à la casse), signale les lignes non valides avec la colonne exacte de l’erreur et marque les versions qui ne diffèrent que par leurs métadonnées de build. Inspectez une version pour voir ses composantes, comparez-la à une autre avec la règle de priorité qui a tranché, et obtenez d’un clic la version major, minor, patch ou préversion suivante (règles de npm semver inc).\nConfidentialité Tout s’exécute dans votre navigateur. La liste des versions et vos dernières saisies sont conservées uniquement dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/semver/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez les versions publiées d’un paquet, saisissez une plage et voyez immédiatement quelles versions la satisfont et laquelle serait installée.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePlages NuGet\u003c/strong\u003e : versions minimales (\u003ccode\u003e1.0\u003c/code\u003e), intervalles (\u003ccode\u003e[1.0,2.0)\u003c/code\u003e, \u003ccode\u003e(,1.0]\u003c/code\u003e), versions exactes (\u003ccode\u003e[1.0]\u003c/code\u003e) et versions flottantes (\u003ccode\u003e1.*\u003c/code\u003e, \u003ccode\u003e1.0.*\u003c/code\u003e, \u003ccode\u003e1.0.0-*\u003c/code\u003e, \u003ccode\u003e*-*\u003c/code\u003e). Chaque plage est expliquée par une expression mathématique simple et normalisée.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePlages npm\u003c/strong\u003e : comparateurs, \u003ccode\u003e^\u003c/code\u003e, \u003ccode\u003e~\u003c/code\u003e, plages x, plages avec trait d’union et \u003ccode\u003e||\u003c/code\u003e, développés exactement comme dans node-semver (\u003ccode\u003e^1.2.3\u003c/code\u003e devient \u003ccode\u003e\u0026gt;=1.2.3 \u0026lt;2.0.0-0\u003c/code\u003e), y compris la règle de npm sur les préversions et l’option \u003ccode\u003eincludePrerelease\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRésolution\u003c/strong\u003e : NuGet choisit la version applicable la \u003cem\u003eplus basse\u003c/em\u003e (les plages flottantes prennent la correspondance la plus haute), npm la \u003cem\u003eplus haute\u003c/em\u003e. L’outil marque la gagnante, explique pourquoi les autres ont été écartées (par exemple une préversion dans une plage NuGet stable) et signale les avertissements de restauration comme NU1603, NU1102 et NU1103.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConversion\u003c/strong\u003e entre les deux syntaxes lorsqu’une plage est un intervalle unique.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"trier-comparer-et-incrémenter\"\u003eTrier, comparer et incrémenter\u003c/h2\u003e\n\u003cp\u003eLa partie inférieure trie la liste selon la priorité SemVer 2.0.0 (ou les règles NuGet : versions en quatre parties, étiquettes insensibles à la casse), signale les lignes non valides avec la colonne exacte de l’erreur et marque les versions qui ne diffèrent que par leurs métadonnées de build. Inspectez une version pour voir ses composantes, comparez-la à une autre avec la règle de priorité qui a tranché, et obtenez d’un clic la version major, minor, patch ou préversion suivante (règles de npm \u003ccode\u003esemver inc\u003c/code\u003e).\u003c/p\u003e","title":"Testeur SemVer et de plages de versions NuGet"},{"content":"Ce qu’il fait Valider vérifie un document JSON par rapport à un JSON Schema pendant la saisie, avec Ajv 8, un validateur JSON Schema très répandu. Générer le schéma fait l’inverse : collez un échantillon JSON et obtenez un schéma de départ à affiner.\nFonctionnalités Draft 2020-12 et draft-07. Le draft est lu dans $schema ; en son absence, il est déduit des mots-clés utilisés ($defs, prefixItems ou definitions, items sous forme de tuple). Vous pouvez le forcer. Chaque erreur pointe vers sa ligne. Les erreurs indiquent le chemin dans l’instance, le mot-clé en échec, un message lisible avec la valeur fautive et le chemin dans le schéma. Cliquez sur un chemin pour sélectionner la ligne dans le JSON ou dans le schéma. D’abord les problèmes de schéma. Un schéma invalide est vérifié par rapport à son méta-schéma et signalé avec des chemins cliquables ; les mots-clés inconnus (fautes de frappe comme requird) et les $ref impossibles à résoudre sont signalés. Les formats tels que date-time, date, time, email, uri, uuid, ipv4, ipv6, hostname et duration sont validés ; désactivez l’option pour traiter les formats comme de simples annotations. Erreurs JSON strictes avec ligne et colonne : virgules finales, commentaires, guillemets simples, zéros non significatifs. Les clés en double sont également signalées. Le générateur fusionne tous les éléments d’un tableau, marque comme required les propriétés présentes dans chaque échantillon, utilise des unions de types pour les valeurs nulles et mixtes et détecte les formats courants. En option : additionalProperties: false et examples. Comment l’utiliser Collez un schéma à gauche et votre JSON à droite, ou déposez des fichiers .json de l’un ou l’autre côté. En mode génération, collez un objet ou un tableau d’échantillons, puis utilisez Valider avec pour tester immédiatement le résultat.\nConfidentialité Tout s’exécute dans votre navigateur. Votre schéma et votre JSON ne sont jamais envoyés, et les URL de $ref externes ne sont pas récupérées. Les dernières saisies sont conservées dans le stockage local de votre navigateur.\n","permalink":"https://www.softinbit.com/fr/tools/json-schema/","summary":"\u003ch2 id=\"ce-quil-fait\"\u003eCe qu’il fait\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eValider\u003c/strong\u003e vérifie un document JSON par rapport à un JSON Schema pendant la saisie, avec \u003ca href=\"https://ajv.js.org/\"\u003eAjv\u003c/a\u003e 8, un validateur JSON Schema très répandu. \u003cstrong\u003eGénérer le schéma\u003c/strong\u003e fait l’inverse : collez un échantillon JSON et obtenez un schéma de départ à affiner.\u003c/p\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDraft 2020-12 et draft-07.\u003c/strong\u003e Le draft est lu dans \u003ccode\u003e$schema\u003c/code\u003e ; en son absence, il est déduit des mots-clés utilisés (\u003ccode\u003e$defs\u003c/code\u003e, \u003ccode\u003eprefixItems\u003c/code\u003e ou \u003ccode\u003edefinitions\u003c/code\u003e, \u003ccode\u003eitems\u003c/code\u003e sous forme de tuple). Vous pouvez le forcer.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChaque erreur pointe vers sa ligne.\u003c/strong\u003e Les erreurs indiquent le chemin dans l’instance, le mot-clé en échec, un message lisible avec la valeur fautive et le chemin dans le schéma. Cliquez sur un chemin pour sélectionner la ligne dans le JSON ou dans le schéma.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eD’abord les problèmes de schéma.\u003c/strong\u003e Un schéma invalide est vérifié par rapport à son méta-schéma et signalé avec des chemins cliquables ; les mots-clés inconnus (fautes de frappe comme \u003ccode\u003erequird\u003c/code\u003e) et les \u003ccode\u003e$ref\u003c/code\u003e impossibles à résoudre sont signalés.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes formats\u003c/strong\u003e tels que \u003ccode\u003edate-time\u003c/code\u003e, \u003ccode\u003edate\u003c/code\u003e, \u003ccode\u003etime\u003c/code\u003e, \u003ccode\u003eemail\u003c/code\u003e, \u003ccode\u003euri\u003c/code\u003e, \u003ccode\u003euuid\u003c/code\u003e, \u003ccode\u003eipv4\u003c/code\u003e, \u003ccode\u003eipv6\u003c/code\u003e, \u003ccode\u003ehostname\u003c/code\u003e et \u003ccode\u003eduration\u003c/code\u003e sont validés ; désactivez l’option pour traiter les formats comme de simples annotations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErreurs JSON strictes\u003c/strong\u003e avec ligne et colonne : virgules finales, commentaires, guillemets simples, zéros non significatifs. Les clés en double sont également signalées.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLe générateur\u003c/strong\u003e fusionne tous les éléments d’un tableau, marque comme \u003ccode\u003erequired\u003c/code\u003e les propriétés présentes dans chaque échantillon, utilise des unions de types pour les valeurs nulles et mixtes et détecte les formats courants. En option : \u003ccode\u003eadditionalProperties: false\u003c/code\u003e et \u003ccode\u003eexamples\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003cp\u003eCollez un schéma à gauche et votre JSON à droite, ou déposez des fichiers \u003ccode\u003e.json\u003c/code\u003e de l’un ou l’autre côté. En mode génération, collez un objet ou un tableau d’échantillons, puis utilisez \u003cstrong\u003eValider avec\u003c/strong\u003e pour tester immédiatement le résultat.\u003c/p\u003e","title":"Validateur et générateur JSON Schema"},{"content":"Ce que fait l’outil Collez un numéro et son type est détecté automatiquement : 11 chiffres correspondent à un TCKN, 10 chiffres à un VKN, et deux lettres suivies de chiffres à un IBAN. Chaque règle est listée avec le calcul réel, pour voir pourquoi un numéro échoue, et pas seulement qu’il échoue :\nTCKN : 11 chiffres, premier chiffre différent de 0, 10ᵉ chiffre = ((d1+d3+d5+d7+d9) × 7 − (d2+d4+d6+d8)) mod 10, 11ᵉ chiffre = somme des dix premiers chiffres mod 10. VKN : 10 chiffres, dont le chiffre de contrôle du numéro fiscal. Un tableau détaillé montre la pondération de chaque chiffre. IBAN : la longueur par pays et le format BBAN du SWIFT IBAN Registry (ISO 13616) pour les 105 codes pays, plus la somme de contrôle ISO 7064 MOD 97-10. Vous obtenez les chiffres de contrôle attendus ainsi que les champs banque et agence. Les IBAN turcs sont découpés en code banque à 5 chiffres, chiffre de réserve et numéro de compte de 16 caractères. Les noms des banques ne sont pas recherchés. Mode en masse, générateur et C# En masse vérifie une valeur par ligne et exporte les résultats en CSV. Générer crée jusqu’à 1 000 valeurs TCKN, VKN ou IBAN synthétiques distinctes, avec une graine facultative pour des jeux de test reproductibles, sous forme de liste, de JSON ou de tableau C#. Code C# fournit les méthodes IsValidTckn, IsValidVkn et IsValidIban, qui appliquent les mêmes règles que cette page, un validateur FluentValidation et des tests xUnit.\nLes valeurs générées sont uniquement des données de test. Elles passent les sommes de contrôle mais sont aléatoires et ne proviennent d’aucune identité ni d’aucun compte réels.\nConfidentialité Tout s’exécute dans votre navigateur et rien n’est envoyé. Les numéros vérifiés ne sont pas enregistrés. Seuls vos réglages, comme les options du générateur, sont conservés dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/tr-validators/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez un numéro et son type est détecté automatiquement : 11 chiffres correspondent à un \u003cstrong\u003eTCKN\u003c/strong\u003e, 10 chiffres à un \u003cstrong\u003eVKN\u003c/strong\u003e, et deux lettres suivies de chiffres à un \u003cstrong\u003eIBAN\u003c/strong\u003e. Chaque règle est listée avec le calcul réel, pour voir \u003cem\u003epourquoi\u003c/em\u003e un numéro échoue, et pas seulement qu’il échoue :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTCKN\u003c/strong\u003e : 11 chiffres, premier chiffre différent de 0, 10ᵉ chiffre = ((d1+d3+d5+d7+d9) × 7 − (d2+d4+d6+d8)) mod 10, 11ᵉ chiffre = somme des dix premiers chiffres mod 10.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eVKN\u003c/strong\u003e : 10 chiffres, dont le chiffre de contrôle du numéro fiscal. Un tableau détaillé montre la pondération de chaque chiffre.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIBAN\u003c/strong\u003e : la longueur par pays et le format BBAN du SWIFT IBAN Registry (ISO 13616) pour les 105 codes pays, plus la somme de contrôle ISO 7064 MOD 97-10. Vous obtenez les chiffres de contrôle attendus ainsi que les champs banque et agence. Les IBAN turcs sont découpés en code banque à 5 chiffres, chiffre de réserve et numéro de compte de 16 caractères. Les noms des banques ne sont pas recherchés.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"mode-en-masse-générateur-et-c\"\u003eMode en masse, générateur et C#\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eEn masse\u003c/strong\u003e vérifie une valeur par ligne et exporte les résultats en CSV. \u003cstrong\u003eGénérer\u003c/strong\u003e crée jusqu’à 1 000 valeurs TCKN, VKN ou IBAN synthétiques distinctes, avec une graine facultative pour des jeux de test reproductibles, sous forme de liste, de JSON ou de tableau C#. \u003cstrong\u003eCode C#\u003c/strong\u003e fournit les méthodes \u003ccode\u003eIsValidTckn\u003c/code\u003e, \u003ccode\u003eIsValidVkn\u003c/code\u003e et \u003ccode\u003eIsValidIban\u003c/code\u003e, qui appliquent les mêmes règles que cette page, un validateur FluentValidation et des tests xUnit.\u003c/p\u003e","title":"Validateur TCKN, VKN et IBAN / Générateur de données de test"},{"content":"Ce qu’il fait Collez un document XML et son schéma XSD pour savoir si le document est conforme. La validation utilise libxml2, la bibliothèque qui se trouve derrière l’outil en ligne de commande xmllint, compilée en WebAssembly et exécutée dans un worker en arrière-plan de votre navigateur.\nFonctionnalités Chaque erreur, avec sa ligne : types de données incorrects ('0' is not a valid value of the atomic type 'xs:positiveInteger'), éléments inattendus ou manquants, violations d’énumérations et de motifs, attributs obligatoires manquants. Cliquez sur une erreur pour aller à cette ligne dans l’éditeur, ou copiez la liste complète. D’abord la bonne formation : si le XML ou le schéma lui-même est cassé, vous obtenez la ligne et la colonne fournies par l’analyseur XML du navigateur avant toute tentative de validation. Les schémas cassés sont signalés, par exemple une référence de type qui ne se résout pas, avec la ligne dans le XSD. Schémas en plusieurs fichiers : utilisez Ajouter des fichiers de schéma pour charger les fichiers référencés par xs:include ou xs:import (d’après leur nom de fichier). Validation pendant la saisie, ou désactivez-la et appuyez sur Valider (Ctrl+Enter) pour les gros documents. Comment l’utiliser Collez ou déposez le XML à gauche et le XSD à droite. L’exemple montre un bon de commande contenant quatre types d’erreurs, pour que vous voyiez à quoi ressemble la liste des erreurs.\nConfidentialité Le moteur de validation (environ 800 Ko, issu du paquet open source xmllint-wasm) est téléchargé depuis cdn.jsdelivr.net lors de la première validation, puis mis en cache par votre navigateur. Votre XML et votre XSD sont traités localement et ne sont jamais envoyés ; les dernières saisies sont conservées dans le stockage local.\n","permalink":"https://www.softinbit.com/fr/tools/xml-xsd-validator/","summary":"\u003ch2 id=\"ce-quil-fait\"\u003eCe qu’il fait\u003c/h2\u003e\n\u003cp\u003eCollez un document XML et son schéma XSD pour savoir si le document est conforme. La validation utilise \u003cstrong\u003elibxml2\u003c/strong\u003e, la bibliothèque qui se trouve derrière l’outil en ligne de commande \u003ccode\u003exmllint\u003c/code\u003e, compilée en WebAssembly et exécutée dans un worker en arrière-plan de votre navigateur.\u003c/p\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChaque erreur, avec sa ligne\u003c/strong\u003e : types de données incorrects (\u003ccode\u003e'0' is not a valid value of the atomic type 'xs:positiveInteger'\u003c/code\u003e), éléments inattendus ou manquants, violations d’énumérations et de motifs, attributs obligatoires manquants. Cliquez sur une erreur pour aller à cette ligne dans l’éditeur, ou copiez la liste complète.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eD’abord la bonne formation\u003c/strong\u003e : si le XML ou le schéma lui-même est cassé, vous obtenez la ligne et la colonne fournies par l’analyseur XML du navigateur avant toute tentative de validation.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes schémas cassés sont signalés\u003c/strong\u003e, par exemple une référence de type qui ne se résout pas, avec la ligne dans le XSD.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSchémas en plusieurs fichiers\u003c/strong\u003e : utilisez \u003cstrong\u003eAjouter des fichiers de schéma\u003c/strong\u003e pour charger les fichiers référencés par \u003ccode\u003exs:include\u003c/code\u003e ou \u003ccode\u003exs:import\u003c/code\u003e (d’après leur nom de fichier).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eValidation pendant la saisie\u003c/strong\u003e, ou désactivez-la et appuyez sur \u003cstrong\u003eValider\u003c/strong\u003e (\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e) pour les gros documents.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-lutiliser\"\u003eComment l’utiliser\u003c/h2\u003e\n\u003cp\u003eCollez ou déposez le XML à gauche et le XSD à droite. L’exemple montre un bon de commande contenant quatre types d’erreurs, pour que vous voyiez à quoi ressemble la liste des erreurs.\u003c/p\u003e","title":"Validateur XML Schema (XSD)"},{"content":"Ce que fait l’outil Collez des lignes de log ou déposez un ou plusieurs fichiers de log : ils deviennent un tableau rapide et filtrable. Les message templates sont rendus avec les valeurs de leurs propriétés, si bien que Placed order {OrderId} se lit Placed order 10457, et chaque propriété reste disponible pour le filtrage.\nFormats pris en charge Serilog Compact JSON (CLEF) : @t, @m, @mt, @l, @x, @i, @r, @tr / @sp et toutes les propriétés, y compris l’échappement @@. Serilog JsonFormatter : Timestamp, Level, MessageTemplate, RenderedMessage, Properties, Renderings. Console JSON de Microsoft.Extensions.Logging (LogLevel, Category, State) et lignes JSON génériques avec des noms de champs courants. Texte : sortie console et fichier de Serilog ([14:32:10 INF] ...), le format console info: Category[0] et les lignes de style NLog. Les messages sur plusieurs lignes et les stack traces restent attachés à leur entrée. Fonctionnalités Rendu des templates avec déstructuration {@Order} en JSON, alignement et spécificateurs de format .NET ({Elapsed:0.00}, {Total:N2}, {Date:yyyy-MM-dd}). Puces de niveau avec compteurs, recherche (mots simples ou /regex/) et filtres de propriété comme OrderId = 42, Elapsed \u0026gt; 500 ou RequestPath ~ /api. Cliquez sur une valeur dans le panneau de détail pour filtrer dessus. Histogramme des entrées par minute, coloré selon le niveau. Faites glisser dessus pour sélectionner une plage horaire. Tableau virtualisé : seules les lignes visibles sont dessinées, si bien que les fichiers de plus de 100 000 lignes défilent sans à-coups. Utilisez les flèches du clavier pour passer d’une ligne à l’autre. Exportez les lignes filtrées en lignes JSON (CLEF) ou en CSV. Confidentialité Les fichiers sont lus dans votre navigateur et ne sont jamais envoyés. Les fichiers ouverts restent uniquement en mémoire ; le texte collé est conservé dans le stockage local jusqu’à ce que vous l’effaciez.\n","permalink":"https://www.softinbit.com/fr/tools/log-viewer/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez des lignes de log ou déposez un ou plusieurs fichiers de log : ils deviennent un tableau rapide et filtrable. Les message templates sont rendus avec les valeurs de leurs propriétés, si bien que \u003ccode\u003ePlaced order {OrderId}\u003c/code\u003e se lit \u003ccode\u003ePlaced order 10457\u003c/code\u003e, et chaque propriété reste disponible pour le filtrage.\u003c/p\u003e\n\u003ch2 id=\"formats-pris-en-charge\"\u003eFormats pris en charge\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSerilog Compact JSON (CLEF)\u003c/strong\u003e : \u003ccode\u003e@t\u003c/code\u003e, \u003ccode\u003e@m\u003c/code\u003e, \u003ccode\u003e@mt\u003c/code\u003e, \u003ccode\u003e@l\u003c/code\u003e, \u003ccode\u003e@x\u003c/code\u003e, \u003ccode\u003e@i\u003c/code\u003e, \u003ccode\u003e@r\u003c/code\u003e, \u003ccode\u003e@tr\u003c/code\u003e / \u003ccode\u003e@sp\u003c/code\u003e et toutes les propriétés, y compris l’échappement \u003ccode\u003e@@\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSerilog \u003ccode\u003eJsonFormatter\u003c/code\u003e\u003c/strong\u003e : \u003ccode\u003eTimestamp\u003c/code\u003e, \u003ccode\u003eLevel\u003c/code\u003e, \u003ccode\u003eMessageTemplate\u003c/code\u003e, \u003ccode\u003eRenderedMessage\u003c/code\u003e, \u003ccode\u003eProperties\u003c/code\u003e, \u003ccode\u003eRenderings\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConsole JSON de Microsoft.Extensions.Logging\u003c/strong\u003e (\u003ccode\u003eLogLevel\u003c/code\u003e, \u003ccode\u003eCategory\u003c/code\u003e, \u003ccode\u003eState\u003c/code\u003e) et lignes JSON génériques avec des noms de champs courants.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTexte\u003c/strong\u003e : sortie console et fichier de Serilog (\u003ccode\u003e[14:32:10 INF] ...\u003c/code\u003e), le format console \u003ccode\u003einfo: Category[0]\u003c/code\u003e et les lignes de style NLog. Les messages sur plusieurs lignes et les stack traces restent attachés à leur entrée.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"fonctionnalités\"\u003eFonctionnalités\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRendu des templates\u003c/strong\u003e avec déstructuration \u003ccode\u003e{@Order}\u003c/code\u003e en JSON, alignement et spécificateurs de format .NET (\u003ccode\u003e{Elapsed:0.00}\u003c/code\u003e, \u003ccode\u003e{Total:N2}\u003c/code\u003e, \u003ccode\u003e{Date:yyyy-MM-dd}\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePuces de niveau\u003c/strong\u003e avec compteurs, \u003cstrong\u003erecherche\u003c/strong\u003e (mots simples ou \u003ccode\u003e/regex/\u003c/code\u003e) et \u003cstrong\u003efiltres de propriété\u003c/strong\u003e comme \u003ccode\u003eOrderId = 42\u003c/code\u003e, \u003ccode\u003eElapsed \u0026gt; 500\u003c/code\u003e ou \u003ccode\u003eRequestPath ~ /api\u003c/code\u003e. Cliquez sur une valeur dans le panneau de détail pour filtrer dessus.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHistogramme\u003c/strong\u003e des entrées par minute, coloré selon le niveau. Faites glisser dessus pour sélectionner une plage horaire.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTableau virtualisé\u003c/strong\u003e : seules les lignes visibles sont dessinées, si bien que les fichiers de plus de 100 000 lignes défilent sans à-coups. Utilisez les flèches du clavier pour passer d’une ligne à l’autre.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExportez\u003c/strong\u003e les lignes filtrées en lignes JSON (CLEF) ou en CSV.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"confidentialité\"\u003eConfidentialité\u003c/h2\u003e\n\u003cp\u003eLes fichiers sont lus dans votre navigateur et ne sont jamais envoyés. Les fichiers ouverts restent uniquement en mémoire ; le texte collé est conservé dans le stockage local jusqu’à ce que vous l’effaciez.\u003c/p\u003e","title":"Visionneuse de logs Serilog / CLEF"},{"content":"Ce que fait l’outil Collez du ShowPlan XML ou déposez un fichier .sqlplan. Chaque instruction est dessinée sous forme d’arbre d’opérateurs, de droite à gauche comme dans SSMS ou de haut en bas. Chaque opérateur affiche sa part du coût estimé, l’objet qu’il lit et ses nombres de lignes. Dans les plans réels, les lignes réelles s’affichent à côté de l’estimation, et les estimations erronées d’un facteur 10 ou plus sont signalées. L’épaisseur des flèches suit le nombre de lignes.\nConstats La liste Constats présente d’abord les problèmes les plus probables :\nConversions implicites (CONVERT_IMPLICIT) qui empêchent un Index Seek ou faussent les estimations Key lookups et RID lookups, avec les colonnes à ajouter en INCLUDE pour les supprimer Parcours qui lisent beaucoup de lignes pour n’en renvoyer que quelques-unes Débordements dans tempdb et avertissements d’allocation mémoire Index manquants, avec une instruction CREATE NONCLUSTERED INDEX ... INCLUDE (...) prête à l’emploi et l’impact estimé par l’optimiseur Parameter sniffing : valeurs des paramètres à la compilation et à l’exécution Erreurs d’estimation de lignes, signalées là où elles naissent plutôt que sur chaque opérateur au-dessus Expirations de l’optimiseur, jointures sans prédicat, statistiques manquantes et principales attentes Cliquez sur un constat pour atteindre son opérateur.\nMode d’emploi Dans SSMS, faites un clic droit sur le plan et choisissez Afficher le XML du plan d’exécution, ou enregistrez-le en .sqlplan. Collez-le ou déposez-le ici. Utilisez Ajuster, les boutons de zoom ou Ctrl+molette, et faites glisser pour vous déplacer. Cliquez sur un opérateur pour voir toutes ses propriétés : prédicats, clés de recherche, colonnes de sortie, estimations d’E/S et de CPU, exécutions et lectures réelles. Confidentialité Le plan est analysé dans votre navigateur et n’est jamais envoyé. Comme il contient le texte de votre requête et les valeurs des paramètres, il reste uniquement dans le stockage local jusqu’à ce que vous l’effaciez.\n","permalink":"https://www.softinbit.com/fr/tools/sql-plan-viewer/","summary":"\u003ch2 id=\"ce-que-fait-loutil\"\u003eCe que fait l’outil\u003c/h2\u003e\n\u003cp\u003eCollez du ShowPlan XML ou déposez un fichier \u003ccode\u003e.sqlplan\u003c/code\u003e. Chaque instruction est dessinée sous forme d’arbre d’opérateurs, de droite à gauche comme dans SSMS ou de haut en bas. Chaque opérateur affiche sa part du coût estimé, l’objet qu’il lit et ses nombres de lignes. Dans les plans réels, les lignes réelles s’affichent à côté de l’estimation, et les estimations erronées d’un facteur 10 ou plus sont signalées. L’épaisseur des flèches suit le nombre de lignes.\u003c/p\u003e","title":"Visionneuse de plans d’exécution SQL Server"}]