diff --git a/src/ImageSharp/MetaData/Profiles/ICC/IccDataReader.cs b/src/ImageSharp/MetaData/Profiles/ICC/IccDataReader.cs
index 45bb9bd115..83f04c2146 100644
--- a/src/ImageSharp/MetaData/Profiles/ICC/IccDataReader.cs
+++ b/src/ImageSharp/MetaData/Profiles/ICC/IccDataReader.cs
@@ -17,6 +17,7 @@ namespace ImageSharp
internal sealed class IccDataReader
{
private static readonly bool IsLittleEndian = BitConverter.IsLittleEndian;
+ private static readonly Encoding AsciiEncoding = Encoding.GetEncoding("ASCII");
///
/// The data that is read
@@ -129,8 +130,7 @@ namespace ImageSharp
/// The value as a string
public string ReadASCIIString(int length)
{
- // Encoding.ASCII is missing in netstandard1.1, use UTF8 instead because it's compatible with ASCII
- string value = Encoding.UTF8.GetString(this.data, this.AddIndex(length), length);
+ string value = AsciiEncoding.GetString(this.data, this.AddIndex(length), length);
// remove data after (potential) null terminator
int pos = value.IndexOf('\0');
diff --git a/src/ImageSharp/MetaData/Profiles/ICC/IccDataWriter.cs b/src/ImageSharp/MetaData/Profiles/ICC/IccDataWriter.cs
index b394d8213a..e433fbff3e 100644
--- a/src/ImageSharp/MetaData/Profiles/ICC/IccDataWriter.cs
+++ b/src/ImageSharp/MetaData/Profiles/ICC/IccDataWriter.cs
@@ -16,6 +16,7 @@ namespace ImageSharp
internal sealed class IccDataWriter
{
private static readonly bool IsLittleEndian = BitConverter.IsLittleEndian;
+ private static readonly Encoding AsciiEncoding = Encoding.GetEncoding("ASCII");
private static readonly double[,] IdentityMatrix = { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } };
@@ -222,8 +223,7 @@ namespace ImageSharp
/// the number of bytes written
public int WriteASCIIString(string value)
{
- // Encoding.ASCII is missing in netstandard1.1, use UTF8 instead because it's compatible with ASCII
- byte[] data = Encoding.UTF8.GetBytes(value);
+ byte[] data = AsciiEncoding.GetBytes(value);
this.dataStream.Write(data, 0, data.Length);
return data.Length;
}
@@ -239,8 +239,7 @@ namespace ImageSharp
{
value = value.Substring(0, Math.Min(length - 1, value.Length));
- // Encoding.ASCII is missing in netstandard1.1, use UTF8 instead because it's compatible with ASCII
- byte[] textData = Encoding.UTF8.GetBytes(value);
+ byte[] textData = AsciiEncoding.GetBytes(value);
int actualLength = Math.Min(length - 1, textData.Length);
this.dataStream.Write(textData, 0, actualLength);
for (int i = 0; i < length - actualLength; i++)
diff --git a/src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccDataTagDataEntry.cs b/src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccDataTagDataEntry.cs
index de6c81c9e5..bb757963bd 100644
--- a/src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccDataTagDataEntry.cs
+++ b/src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccDataTagDataEntry.cs
@@ -14,6 +14,8 @@ namespace ImageSharp
///
internal sealed class IccDataTagDataEntry : IccTagDataEntry
{
+ private static readonly Encoding AsciiEncoding = Encoding.GetEncoding("ASCII");
+
///
/// Initializes a new instance of the class.
///
@@ -67,8 +69,7 @@ namespace ImageSharp
{
if (this.IsAscii)
{
- // Encoding.ASCII is missing in netstandard1.1, use UTF8 instead because it's compatible with ASCII
- return Encoding.UTF8.GetString(this.Data, 0, this.Data.Length);
+ return AsciiEncoding.GetString(this.Data, 0, this.Data.Length);
}
else
{