@@ -739,7 +739,7 @@ fmt::println("UTF-8 下,前四个字节:{}", s.substr(0, 4));
739
739
740
740
```cpp
741
741
std::u32string s = U"小彭老师公开课万岁";
742
- fmt::println("UTF-32 下,前四个字符:{}", s.substr(0, 4));
742
+ fmt::println("UTF-32 下,前四个字符:{}", utf8::utf32to8( s.substr(0, 4) ));
743
743
// 会打印 “小彭老师”
744
744
```
745
745
@@ -755,7 +755,7 @@ fmt::println("UTF-8 下,“公”前的所有字节:{}", s.substr(0, pos));
755
755
```cpp
756
756
std::u32string s = U"小彭老师公开课万岁";
757
757
size_t pos = s.find(U'公'); // pos = 4
758
- fmt::println("UTF-32 下,“公”前的所有字符:{}", s.substr(0, pos));
758
+ fmt::println("UTF-32 下,“公”前的所有字符:{}", utf8::utf32to8( s.substr(0, pos) ));
759
759
// 会打印 “小彭老师”
760
760
```
761
761
@@ -772,7 +772,7 @@ fmt::print("UTF-8 下第一个字节:{}", s[0]);
772
772
773
773
```cpp
774
774
std::u32string s = U"小彭老师公开课万岁";
775
- fmt::print("UTF-32 下第一个字符:{}", s[0] );
775
+ fmt::print("UTF-32 下第一个字符:{}", utf8::utf32to8(s.substr(0, 1)) );
776
776
// 会打印 ‘小’
777
777
```
778
778
@@ -1233,8 +1233,8 @@ https://github.com/nemtrif/utfcpp
1233
1233
``` cpp
1234
1234
std::string s = " 你好" ;
1235
1235
std::u32string u32 = utf8::utf8to32(s);
1236
- fmt::println ("U+{:04X}", u32[ 0] );
1237
- fmt::println("U+{:04X}", u32[ 1] );
1236
+ fmt::println ("U+{:04X}", static_cast < std::uint32_t > ( u32[ 0] ) );
1237
+ fmt::println("U+{:04X}", static_cast < std::uint32_t > ( u32[ 1] ) );
1238
1238
u32[ 1] = U'坏';
1239
1239
s = utf8::utf32to8(u32);
1240
1240
fmt::println("{}", s); // 你坏
@@ -1248,7 +1248,7 @@ utf8::unchecked::iterator<char *> bit(s);
1248
1248
utf8::unchecked::iterator<char *> eit(s + strlen(s));
1249
1249
for (auto it = bit; it != eit; ++it) {
1250
1250
// *it: char32_t
1251
- fmt::println("U+{:04X}", *it);
1251
+ fmt::println("U+{:04X}", static_cast<std::uint32_t>( *it) );
1252
1252
}
1253
1253
1254
1254
// 安全(带边界检测)的版本
@@ -1257,7 +1257,7 @@ utf8::iterator<char *> bit(s, s, s + strlen(s));
1257
1257
utf8::iterator<char *> eit(s + strlen(s), s, s + strlen(s));
1258
1258
for (auto it = bit; it != eit; ++it) {
1259
1259
// *it: char32_t
1260
- fmt::println("U+{:04X}", *it);
1260
+ fmt::println("U+{:04X}", static_cast<std::uint32_t>( *it) );
1261
1261
}
1262
1262
1263
1263
// 基于 std::string 的版本
@@ -1266,7 +1266,7 @@ utf8::iterator<std::string::iterator> bit(s.begin(), s.begin(), s.end());
1266
1266
utf8::iterator<std::string::iterator> eit(s.end(), s.begin(), s.end());
1267
1267
for (auto it = bit; it != eit; ++it) {
1268
1268
// *it: char32_t
1269
- fmt::println("U+{:04X}", *it);
1269
+ fmt::println("U+{:04X}", static_cast<std::uint32_t>( *it) );
1270
1270
}
1271
1271
```
1272
1272
@@ -1292,7 +1292,7 @@ Utf8Range(T &&t) -> Utf8Range<decltype(std::begin(t))>;
1292
1292
// 以下是新类的使用方法
1293
1293
std::string s = "你好";
1294
1294
for (char32_t c : Utf8Range(s)) {
1295
- fmt::println("U+{:04X}", c );
1295
+ fmt::println("U+{:04X}", static_cast < std::uint32_t > (c) );
1296
1296
}
1297
1297
```
1298
1298
@@ -1355,8 +1355,8 @@ for (char c : s.toCharArray()) {
1355
1355
``` cpp
1356
1356
std::u16string s = u" 你好" ;
1357
1357
std::u32string u32 = utf16::utf16to32(s);
1358
- fmt::println ("U+{:04X}", u32[ 0] );
1359
- fmt::println("U+{:04X}", u32[ 1] );
1358
+ fmt::println ("U+{:04X}", static_cast < std::uint32_t > ( u32[ 0] ) );
1359
+ fmt::println("U+{:04X}", static_cast < std::uint32_t > ( u32[ 1] ) );
1360
1360
u32[ 1] = U'𰻞';
1361
1361
s = utf16::utf32to16(u32);
1362
1362
fmt::println("{}", s); // 你𰻞
0 commit comments