Skip to content

Commit

Permalink
Merge pull request #42867 from aaronfranke/cs_get_str_bytes
Browse files Browse the repository at this point in the history
Add GetStringFromUTF8 and GetStringFromASCII to C#
  • Loading branch information
akien-mga authored Oct 17, 2020
2 parents 94e5f66 + 029de52 commit 5b6a22e
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,35 @@ public static string GetFile(this string instance)
return instance.Substring(sep + 1);
}

/// <summary>
/// Converts the given byte array of ASCII encoded text to a string.
/// Faster alternative to <see cref="GetStringFromUTF8"/> if the
/// content is ASCII-only. Unlike the UTF-8 function this function
/// maps every byte to a character in the array. Multibyte sequences
/// will not be interpreted correctly. For parsing user input always
/// use <see cref="GetStringFromUTF8"/>.
/// </summary>
/// <param name="bytes">A byte array of ASCII characters (on the range of 0-127).</param>
/// <returns>A string created from the bytes.</returns>
public static string GetStringFromASCII(this byte[] bytes)
{
return Encoding.ASCII.GetString(bytes);
}

/// <summary>
/// Converts the given byte array of UTF-8 encoded text to a string.
/// Slower than <see cref="GetStringFromASCII"/> but supports UTF-8
/// encoded data. Use this function if you are unsure about the
/// source of the data. For user input this function
/// should always be preferred.
/// </summary>
/// <param name="bytes">A byte array of UTF-8 characters (a character may take up multiple bytes).</param>
/// <returns>A string created from the bytes.</returns>
public static string GetStringFromUTF8(this byte[] bytes)
{
return Encoding.UTF8.GetString(bytes);
}

// <summary>
// Hash the string and return a 32 bits integer.
// </summary>
Expand Down

0 comments on commit 5b6a22e

Please sign in to comment.