"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية اكتشاف سلسلة ترميز السلسلة بكفاءة في C#؟

كيفية اكتشاف سلسلة ترميز السلسلة بكفاءة في C#؟

نشر في 2025-04-20
تصفح:383

How Can I Efficiently Detect a String's Encoding in C#?

اكتشاف فعال لترميز السلسلة في C#

حكم دقيق لترميز السلسلة أمر بالغ الأهمية لمعالجة البيانات النصية من مصادر مختلفة. سوف تستكشف هذه المقالة كيفية تحقيق هذا الهدف بكفاءة في C#.

أدلة الترميز

هناك عدة طرق لتحديد ترميز سلسلة دون إعلان صريح:

  1. bom (علامة ترتيب البايت): تحتوي العديد من ترميزات Unicode على توقيعات ثلاثية البايت أو أربعة بايت في بداية ملف للإشارة إلى ترميزها. على سبيل المثال ، يستخدم UTF-8 0xefbbbf.
  2. فحص/فحص إرشادي: عن طريق التحقق من البايتات القليلة الأولى من السلسلة ، يمكننا محاولة اكتشاف الترميز. على سبيل المثال ، يميل UTF-8 إلى الحصول على نمط بايت حيث يتم تعيين بتات عالية محددة.
  3. بيانات التعريف في ابحث عن أنماط في نص مثل "charset = xyz" أو "الترميز = xyz".
نظرة عامة على الحل

يجمع الكود الذي توفره

بين الطرق الثلاث لتحديد ترميز السلسلة ، أولاً هو اكتشاف BOM. إذا لم يتم العثور على BOM ، فإن الكود يستخدم كاشف لتحديد الترميزات الشائعة مثل UTF-8 و UTF-16. أخيرًا ، إذا لم يتم العثور على ترميز مناسب ، فسوف يعود إلى صفحة الكود الافتراضي للنظام.

لا يكتشف هذا الرمز الترميز فحسب ، بل يقوم أيضًا بإرجاع النص الذي تم فك تشفيره لتوفير المعلومات المطلوبة بالكامل.

تنفيذ الكود

رمز C# التالي ينفذ هذا الحل:

public Encoding detectTextEncoding(string filename, out String text, int taster = 1000)
{
    // 检查BOM
    // 为简洁起见省略

    // 基于探测器的编码检测
    bool utf8 = false;
    int i = 0;
    while (i 
طريقة الاستخدام

لاستخدام هذا الرمز ، وتوفير مسار الملف كسلسلة واسترداد النص المشفر والمكشف كمعلمات الإخراج. هنا مثال:

`` `c# نص سلسلة ترميز الترميز = detectTextEncoding ("my_file.txt" ، نص خارج) ؛ console.writeline ("التشفير المكتشف:" charsing.encodingName) ؛ console.writeline ("النص فك التشفير:" النص) ؛ `` `

الكل في الكل ، يوفر هذا الرمز طريقة قوية لتحديد ترميز السلاسل في C#، والاستفادة من الشيكات BOM والتجول لضمان اكتشاف دقيق.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3