আমি কীভাবে সি # তে এইচটিএমএল অক্ষরগুলি ডিকোড করতে পারি?


397

আমার ইমেল ঠিকানাগুলি এইচটিএমএল চরিত্র সত্তা সহ এনকোড রয়েছে। .NET- এ এমন কিছু আছে যা তাদের প্লেইন স্ট্রিংয়ে রূপান্তর করতে পারে?

উত্তর:


618

তুমি ব্যবহার করতে পার HttpUtility.HtmlDecode

আপনি যদি নেট নেট 4.0+ ব্যবহার করেন তবে আপনি এটি ব্যবহার করতে পারেন WebUtility.HtmlDecodeযা System.Netনেমস্পেসে উপলভ্য হওয়ায় অতিরিক্ত সংসদীয় রেফারেন্সের প্রয়োজন হয় না ।


1
এটি System.Web তে থাকার কথা, তবে তা হয় না। আমি এক বছরের বেশি সময় ধরে সি # স্পর্শ করিনি, যদি আমি এটির সাথে আরও কিছুটা হতাশ হয়ে উঠি তবে আমি সেগুলি ম্যানুয়ালি রূপান্তর করব।
ভাসিল

1
এটি System.Web .NET 2.0 সংস্করণে রয়েছে
মার্ক সিডেড

1
আমি System.Web ব্যবহার করছি। আমার প্রসঙ্গে সেই নামস্পেসে কেবল কয়েকটি অ্যাসপার্মেশন ক্লাস রয়েছে।
ভাসিল 18

17
আপনার প্রকল্পের বৈশিষ্ট্যগুলিতে System.Web.Dll এ একটি রেফারেন্স যুক্ত করুন। আপনি যে ক্লাসগুলি দেখতে পান System.dll এ ডিফল্টরূপে উল্লেখ করা হয়।
OwenP

11
আপনি কোয়েরি স্ট্রিংটি ডিকোড করার চেষ্টা করছেন এমন ক্ষেত্রে, আপনাকে ব্যবহার করতে হবেHttpUtility.UrlDecode
পিটারএক্স

189

নেট। 4.0:

System.Net.WebUtility.HtmlDecode()

সি # প্রকল্পের জন্য সমাবেশ অন্তর্ভুক্ত করার দরকার নেই


6
এটি আরও ভাল সমাধান কারণ এইচটিপি ইউটিলিটি "& apos;" ডিকোড করে না প্রতীক .. কেন জানি না ..
RredCat

ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্মের জন্য এটি বিকাশ করা প্রয়োজন।
ম্যাথিউশীটগুলি

এর ফলে। নেট ওয়েব পৃষ্ঠাগুলিতে এক্সএসএস হবে?
সেনুরা ডিসানায়াকে

43

@ সিকিউ যেমন বলেছে, আপনাকে এইচটিপি ইউটিলিটি.এইচটিএমএল ডিকোড ব্যবহার করা দরকার তবে এটি ডিফল্টরূপে একটি নন-এএসপি। নেট প্রকল্পে উপলভ্য নয়।

একটি নন-এএসপি। নেট অ্যাপ্লিকেশনটির জন্য, আপনাকে এতে একটি রেফারেন্স যুক্ত করতে হবে System.Web.dll। সলিউশন এক্সপ্লোরারে আপনার প্রকল্পকে ডান ক্লিক করুন, "রেফারেন্স যুক্ত করুন" নির্বাচন করুন, তারপরে তালিকাটি ব্রাউজ করুন System.Web.dll

এখন যেহেতু রেফারেন্স যুক্ত করা হয়েছে, আপনার পুরোপুরি যোগ্যতাসম্পন্ন নামটি ব্যবহার করে পদ্ধতিটি অ্যাক্সেস করতে সক্ষম হওয়া উচিত System.Web.HttpUtility.HtmlDecodeবা জিনিসগুলি আরও সহজ করার জন্য একটি usingবিবৃতি System.Websertোকানো উচিত।


16

যদি কোনও সার্ভারের প্রসঙ্গ না থাকে (যেমন আপনার অফলাইনে চলছে), আপনি এইচটিটিপি ইউটিলিটি ব্যবহার করতে পারেন । এইচটিএমএলডেকোড


1
সম্মত, এজন্যই আমি এইচটিপি ইউটিলিটি ব্যবহার করি, একই ফাঁদে পড়ে = পি
কুইন্টিন রবিনসন

7

Server.HtmlDecodeএইচটিএমএল সত্তা ডিকোড করতে ব্যবহার করুন । যদি আপনি চাই প্রতি অব্যাহতি এইচটিএমএল, অর্থাত্ প্রদর্শন <এবং >ব্যবহারকারী, ব্যবহার করা চরিত্র Server.HtmlEncode


4
সার্ভারের প্রসঙ্গ থাকতে পারে না (যেমন পরীক্ষার কেসগুলি চালাবার সময় এবং এর মতো) আমি এই ফাঁদে পড়েছি :)
রব কুপার

7

এইচটিএমএল ডিকোড করতে কোডের নীচে একবার দেখুন

string s = "Svendborg V&#230;rft A/S";
string a = HttpUtility.HtmlDecode(s);
Response.Write(a);

আউটপুট মত

 Svendborg Værft A/S

2
এইচটিএমএলডেকোড একটি স্ট্রিং ফিরিয়ে দেয় বলে 'টুস্ট্রিং ()' অপ্রয়োজনীয়
জাস্টিন

6

এটিও উল্লেখযোগ্য যে আপনি যদি আমার মতো এইচটিএমএলিলিটিপ্যাকটি ব্যবহার করেন তবে আপনার ব্যবহার করা উচিত HtmlAgilityPack.HtmlEntity.DeEntitize()। এটি একটি নেয় stringএবং একটি প্রদান করে string


1

কিছু ইউটিলিটি শ্রেণিতে স্ট্যাটিক একটি পদ্ধতি লিখুন, যা প্যারামিটার হিসাবে স্ট্রিং গ্রহণ করে এবং ডিকোড করা এইচটিএমএল স্ট্রিংটি ফেরত দেয়।

using System.Web.HttpUtilityআপনার ক্লাসে অন্তর্ভুক্ত করুন

public static string HtmlEncode(string text)
    {
        if(text.length > 0){

           return HttpUtility.HtmlDecode(text);
        }else{

         return text;
        }

    }

1

.NET 4.0 এর জন্য

নীচের এক্সটেনশনগুলি ব্যবহার করে System.net.dllপ্রকল্পে একটি রেফারেন্স যুক্ত করুনusing System.Net;

// Html encode/decode
    public static string HtmDecode(this string htmlEncodedString)
    {
        if(htmlEncodedString.Length > 0)
        {
            return System.Net.WebUtility.HtmlDecode(htmlEncodedString);
        }
        else
        {
            return htmlEncodedString;
        }
    }

    public static string HtmEncode(this string htmlDecodedString)
    {
        if(htmlDecodedString.Length > 0)
        {
            return System.Net.WebUtility.HtmlEncode(htmlDecodedString);
        }
        else
        {
            return htmlDecodedString;
        }
    }

0

স্ট্রিংগুলির জন্য & # x20; আমি স্ট্রিং ডাবল ডিকোড ছিল। প্রথম ডিকোড এটিকে দ্বিতীয় পাসে পরিণত করবে এটি সঠিকভাবে প্রত্যাশিত অক্ষরে ডিকোড করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.