Encoding::WebName Property

 

When overridden in a derived class, gets the name registered with the Internet Assigned Numbers Authority (IANA) for the current encoding.

Namespace:   System.Text
Assembly:  mscorlib (in mscorlib.dll)

public:
property String^ WebName {
	virtual String^ get();
}

Property Value

Type: System::String^

The IANA name for the current Encoding.

The WebName property is the same as the Name property.

Note that WebName returns an IANA-registered name for the encoding. When its value is the name of a standard, the implementation of the encoding might not conform in full to that standard. The HeaderName property defines a different encoding that might work better for e-mail headers. However, most apps should use WebName instead.

For more information on the IANA, go to www.iana.org.

The Encoding::WebName is the same as the EncodingInfo::Name returned by Encoding::GetEncodings. Some of the web names are duplicates; see the remarks for Encoding::GetEncodings for more information.

The following example includes the WebName in an HTML header.

#using <System.dll>
#using <System.Web.dll>

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Web;
int main()
{

   // Use UTF8 encoding.
   Encoding^ encoding = Encoding::UTF8;
   StreamWriter^ writer = gcnew StreamWriter( "Encoding.html",false,encoding );
   writer->WriteLine( "<html><head>" );

   // Write charset attribute to the html file.
   // writer -> WriteLine(S"<META HTTP-EQUIV=\"Content-Type\S" CONTENT=\"text/html; charset=S {0}", encoding.WebName +"\S">");
   writer->WriteLine( String::Concat( "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=", encoding->WebName, "\">" ) );
   writer->WriteLine( "</head><body>" );
   writer->WriteLine( "<p>{0}</p>", HttpUtility::HtmlEncode( encoding->EncodingName ) );
   writer->WriteLine( "</body></html>" );
   writer->Flush();
   writer->Close();
}

/*
This code produces the following output in an HTML file.

<html><head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</head><body>
<p>Unicode (UTF-8)</p>
</body></html>

*/

The following example retrieves the different names for each encoding and displays the encodings with one or more names that are different from EncodingInfo::Name. It displays EncodingName but does not compare against it.

using namespace System;
using namespace System::Text;
int main()
{

   // Print the header.
   Console::Write( "Name               " );
   Console::Write( "CodePage  " );
   Console::Write( "BodyName           " );
   Console::Write( "HeaderName         " );
   Console::Write( "WebName            " );
   Console::WriteLine( "Encoding.EncodingName" );

   // For every encoding, compare the name properties with EncodingInfo.Name.
   // Display only the encodings that have one or more different names.
   System::Collections::IEnumerator^ myEnum = Encoding::GetEncodings()->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      EncodingInfo ^ ei = safe_cast<EncodingInfo ^>(myEnum->Current);
      Encoding^ e = ei->GetEncoding();
      if (  !ei->Name->Equals( e->BodyName ) ||  !ei->Name->Equals( e->HeaderName ) ||  !ei->Name->Equals( e->WebName ) )
      {
         Console::Write( "{0,-18} ", ei->Name );
         Console::Write( "{0,-9} ", e->CodePage );
         Console::Write( "{0,-18} ", e->BodyName );
         Console::Write( "{0,-18} ", e->HeaderName );
         Console::Write( "{0,-18} ", e->WebName );
         Console::WriteLine( "{0} ", e->EncodingName );
      }
   }
}

/* 
This code produces the following output.

Name               CodePage  BodyName           HeaderName         WebName            Encoding.EncodingName
shift_jis          932       iso-2022-jp        iso-2022-jp        shift_jis          Japanese (Shift-JIS)
windows-1250       1250      iso-8859-2         windows-1250       windows-1250       Central European (Windows)
windows-1251       1251      koi8-r             windows-1251       windows-1251       Cyrillic (Windows)
Windows-1252       1252      iso-8859-1         Windows-1252       Windows-1252       Western European (Windows)
windows-1253       1253      iso-8859-7         windows-1253       windows-1253       Greek (Windows)
windows-1254       1254      iso-8859-9         windows-1254       windows-1254       Turkish (Windows)
csISO2022JP        50221     iso-2022-jp        iso-2022-jp        csISO2022JP        Japanese (JIS-Allow 1 byte Kana)
iso-2022-kr        50225     iso-2022-kr        euc-kr             iso-2022-kr        Korean (ISO)

*/

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
Show: