DotNetDupe
4.0.6
C++17/20 Implementation of the .NET Base Class Library (BCL)
Toggle main menu visibility
Loading...
Searching...
No Matches
TextEncoding.cpp
Go to the documentation of this file.
1
#include "
pch.h
"
2
#include "
System/Text/TextEncoding.h
"
3
#include <vector>
4
5
namespace
DotNetDupe
{
6
namespace
System
{
7
namespace
Text
{
8
// Static member initialization
9
UTF8EncodingPtr
TextEncoding::s_utf8EncodingInstance(
nullptr
);
10
11
Array<char>
UTF8Encoding::GetBytes
(
const
String
& s) {
13
const
char
* raw = (
const
char
*)s;
14
if
(!raw)
return
Array<char>
(0);
15
17
int
length = s.
GetLength
();
18
Array<char>
bytes(length);
19
for
(
int
i = 0; i < length; i++) bytes[i] = raw[i];
20
return
bytes;
21
}
22
23
String
UTF8Encoding::GetString
(
const
Array<char>
& bytes) {
25
if
(bytes.
GetLength
() == 0) {
26
return
String
(
""
);
27
}
28
30
return
GetString
(bytes.
GetData
(), bytes.
GetLength
());
31
}
32
33
String
UTF8Encoding::GetString
(
const
char
* bytes,
int
byteCount) {
35
if
(bytes ==
nullptr
|| byteCount == 0) {
36
return
String
(
""
);
37
}
38
40
std::string tempString(bytes, byteCount);
41
return
String
(tempString.c_str());
42
}
43
44
EncodingPtr
TextEncoding::UTF8
() {
46
if
(s_utf8EncodingInstance.IsNull()) {
47
s_utf8EncodingInstance =
SmartPointer<UTF8Encoding>::NewShared
();
48
}
49
51
return
s_utf8EncodingInstance.
DynamicCast
<
Encoding
>();
52
}
53
}
54
}
55
}
TextEncoding.h
Represents character encodings and code page conversions.
DotNetDupe::System::Array
Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the ba...
Definition
Array.h:29
DotNetDupe::System::Array::GetLength
int GetLength() const
Gets the total number of elements in all dimensions of the Array.
Definition
Array.h:142
DotNetDupe::System::Array::GetData
T * GetData()
Gets a pointer to the contiguous internal element buffer.
Definition
Array.h:146
DotNetDupe::System::SmartPointer::NewShared
static SmartPointer< T > NewShared()
Creates a Shared SmartPointer, default constructing T.
Definition
SmartPointer.h:277
DotNetDupe::System::SmartPointer::DynamicCast
SmartPointer< U > DynamicCast() const
Dynamically casts the managed pointer to another type U and returns a new SmartPointer sharing owners...
Definition
SmartPointer.h:399
DotNetDupe::System::String
Represents text as a sequence of UTF-8 code units with culture-invariant operations.
Definition
String.h:74
DotNetDupe::System::String::GetLength
int GetLength() const
Definition
String.cpp:247
DotNetDupe::System::String::String
String()
Initializes a new instance of the String class to an empty string.
Definition
String.cpp:64
DotNetDupe::System::Text::Encoding
Represents a character encoding.
Definition
TextEncoding.h:26
DotNetDupe::System::Text::TextEncoding::UTF8
static EncodingPtr UTF8()
Gets an encoding for the UTF-8 format.
Definition
TextEncoding.cpp:44
DotNetDupe::System::Text::UTF8Encoding::GetBytes
Array< char > GetBytes(const String &s) override
Encodes a set of characters into a sequence of UTF-8 bytes.
Definition
TextEncoding.cpp:11
DotNetDupe::System::Text::UTF8Encoding::GetString
String GetString(const Array< char > &bytes) override
Decodes a sequence of UTF-8 bytes into a String.
Definition
TextEncoding.cpp:23
DotNetDupe::System::Text
Definition
JsonElement.h:16
DotNetDupe::System::Text::UTF8EncodingPtr
SmartPointer< UTF8Encoding > UTF8EncodingPtr
SmartPointer alias for UTF8Encoding instances.
Definition
TextEncoding.h:51
DotNetDupe::System::Text::EncodingPtr
SmartPointer< Encoding > EncodingPtr
SmartPointer alias for Encoding instances.
Definition
TextEncoding.h:20
DotNetDupe::System
Definition
Action.h:11
DotNetDupe
Definition
IServiceCollection.h:7
pch.h
DotNetDupe
TextEncoding.cpp
Generated by
1.18.0