pytorch

Форк
0
/
Unicode.cpp 
49 строк · 1.1 Кб
1
#include <c10/util/Unicode.h>
2

3
namespace c10 {
4
#if defined(_WIN32)
5
std::wstring u8u16(const std::string& str) {
6
  if (str.empty()) {
7
    return std::wstring();
8
  }
9
  int size_needed = MultiByteToWideChar(
10
      CP_UTF8, 0, str.c_str(), static_cast<int>(str.size()), NULL, 0);
11
  TORCH_CHECK(size_needed > 0, "Error converting the content to Unicode");
12
  std::wstring wstr(size_needed, 0);
13
  MultiByteToWideChar(
14
      CP_UTF8,
15
      0,
16
      str.c_str(),
17
      static_cast<int>(str.size()),
18
      &wstr[0],
19
      size_needed);
20
  return wstr;
21
}
22
std::string u16u8(const std::wstring& wstr) {
23
  if (wstr.empty()) {
24
    return std::string();
25
  }
26
  int size_needed = WideCharToMultiByte(
27
      CP_UTF8,
28
      0,
29
      wstr.c_str(),
30
      static_cast<int>(wstr.size()),
31
      NULL,
32
      0,
33
      NULL,
34
      NULL);
35
  TORCH_CHECK(size_needed > 0, "Error converting the content to UTF8");
36
  std::string str(size_needed, 0);
37
  WideCharToMultiByte(
38
      CP_UTF8,
39
      0,
40
      wstr.c_str(),
41
      static_cast<int>(wstr.size()),
42
      &str[0],
43
      size_needed,
44
      NULL,
45
      NULL);
46
  return str;
47
}
48
#endif
49
} // namespace c10
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.