Skip to content

Instantly share code, notes, and snippets.

@udaken
Created April 21, 2022 06:21
Show Gist options
  • Save udaken/111c5b8c4dc613c940a0a38402bed90d to your computer and use it in GitHub Desktop.
Save udaken/111c5b8c4dc613c940a0a38402bed90d to your computer and use it in GitHub Desktop.
StrConv(VbStrConvNarrow/VbStrConvWide)で変換される文字
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualBasic;
Console.WriteLine($"{RuntimeInformation.OSDescription} ({RuntimeInformation.OSArchitecture})");
Console.WriteLine($"OSVersion: {Environment.OSVersion}");
Console.WriteLine($"Runtime: {RuntimeInformation.FrameworkDescription} ({AppContext.TargetFrameworkName}) / CLR: {RuntimeEnvironment.GetSystemVersion()}");
foreach (var (c, a) in EnumerateChars())
{
var wide = Strings.StrConv(a, VbStrConv.Wide);
if (a == wide)
wide = null;
if (null != wide)
{
Console.WriteLine($"| U+{(int)c:X4} | `{a}` | `{wide}` |");
}
}
Console.WriteLine("---");
foreach (var (c, a) in EnumerateChars())
{
var narrow = Strings.StrConv(a, VbStrConv.Narrow);
if (a == narrow)
narrow = null;
if (null != narrow)
{
Console.WriteLine($"| U+{(int)c:X4} | `{a}` | `{narrow}` |");
}
}
static IEnumerable<(char c, string a)> EnumerateChars()
{
for (char c = (char)0x20; c < Char.MaxValue; c++)
{
var s = $"{c}";
var a = Encoding.Default.GetString(Encoding.Default.GetBytes(s));
if (a == s)
{
yield return (c, a);
}
}
}
Microsoft Windows 10.0.22000  (X64)
OSVersion: Microsoft Windows NT 6.2.9200.0
Runtime: .NET Framework 4.8.4470.0 (.NETFramework,Version=v4.8) / CLR: v4.0.30319
Widen
U+0020  
U+0021 !
U+0022 "
U+0023 #
U+0024 $
U+0025 %
U+0026 &
U+0027 '
U+0028 (
U+0029 )
U+002A *
U+002B +
U+002C ,
U+002D -
U+002E .
U+002F /
U+0030 0
U+0031 1
U+0032 2
U+0033 3
U+0034 4
U+0035 5
U+0036 6
U+0037 7
U+0038 8
U+0039 9
U+003A :
U+003B ;
U+003C <
U+003D =
U+003E >
U+003F ?
U+0040 @
U+0041 A
U+0042 B
U+0043 C
U+0044 D
U+0045 E
U+0046 F
U+0047 G
U+0048 H
U+0049 I
U+004A J
U+004B K
U+004C L
U+004D M
U+004E N
U+004F O
U+0050 P
U+0051 Q
U+0052 R
U+0053 S
U+0054 T
U+0055 U
U+0056 V
U+0057 W
U+0058 X
U+0059 Y
U+005A Z
U+005B [
U+005D ]
U+005E ^
U+005F _ _
U+0060 ```
U+0061 a
U+0062 b
U+0063 c
U+0064 d
U+0065 e
U+0066 f
U+0067 g
U+0068 h
U+0069 i
U+006A j
U+006B k
U+006C l
U+006D m
U+006E n
U+006F o
U+0070 p
U+0071 q
U+0072 r
U+0073 s
U+0074 t
U+0075 u
U+0076 v
U+0077 w
U+0078 x
U+0079 y
U+007A z
U+007B {
U+007C ` `
U+007D }
U+007E ~
U+FF61
U+FF62
U+FF63
U+FF64
U+FF65
U+FF66
U+FF67
U+FF68
U+FF69
U+FF6A
U+FF6B
U+FF6C
U+FF6D
U+FF6E
U+FF6F
U+FF70
U+FF71
U+FF72
U+FF73
U+FF74
U+FF75
U+FF76
U+FF77
U+FF78
U+FF79
U+FF7A
U+FF7B
U+FF7C
U+FF7D
U+FF7E
U+FF7F ソ
U+FF80
U+FF81
U+FF82
U+FF83
U+FF84
U+FF85
U+FF86
U+FF87
U+FF88
U+FF89
U+FF8A
U+FF8B
U+FF8C
U+FF8D
U+FF8E
U+FF8F
U+FF90
U+FF91
U+FF92
U+FF93
U+FF94
U+FF95
U+FF96
U+FF97
U+FF98
U+FF99
U+FF9A
U+FF9B
U+FF9C
U+FF9D
U+FF9E
U+FF9F
Narrows
U+2018 '
U+2019 '
U+201C "
U+201D "
U+3000  
U+3001
U+3002
U+300C
U+300D
U+309B
U+309C
U+30A1
U+30A2
U+30A3
U+30A4
U+30A5
U+30A6
U+30A7
U+30A8
U+30A9
U+30AA
U+30AB
U+30AC ガ
U+30AD
U+30AE ギ
U+30AF
U+30B0 グ
U+30B1
U+30B2 ゲ
U+30B3
U+30B4 ゴ
U+30B5
U+30B6 ザ
U+30B7
U+30B8 ジ
U+30B9
U+30BA ズ
U+30BB
U+30BC ゼ
U+30BD ソ
U+30BE ゾ
U+30BF
U+30C0 ダ
U+30C1
U+30C2 ヂ
U+30C3
U+30C4
U+30C5 ヅ
U+30C6
U+30C7 デ
U+30C8
U+30C9 ド
U+30CA
U+30CB
U+30CC
U+30CD
U+30CE
U+30CF
U+30D0 バ
U+30D1 パ
U+30D2
U+30D3 ビ
U+30D4 ピ
U+30D5
U+30D6 ブ
U+30D7 プ
U+30D8
U+30D9 ベ
U+30DA ペ
U+30DB
U+30DC ボ
U+30DD ポ
U+30DE
U+30DF
U+30E0
U+30E1
U+30E2
U+30E3
U+30E4
U+30E5
U+30E6
U+30E7
U+30E8
U+30E9
U+30EA
U+30EB
U+30EC
U+30ED
U+30EF
U+30F2
U+30F3
U+30F4 ヴ
U+30FB
U+30FC
U+30FE ヾ
U+FF01 !
U+FF02 "
U+FF03 #
U+FF04 $
U+FF05 %
U+FF06 &
U+FF07 '
U+FF08 (
U+FF09 )
U+FF0A *
U+FF0B +
U+FF0C ,
U+FF0D -
U+FF0E .
U+FF0F /
U+FF10 0
U+FF11 1
U+FF12 2
U+FF13 3
U+FF14 4
U+FF15 5
U+FF16 6
U+FF17 7
U+FF18 8
U+FF19 9
U+FF1A :
U+FF1B ;
U+FF1C <
U+FF1D =
U+FF1E >
U+FF1F ?
U+FF20 @
U+FF21 A
U+FF22 B
U+FF23 C
U+FF24 D
U+FF25 E
U+FF26 F
U+FF27 G
U+FF28 H
U+FF29 I
U+FF2A J
U+FF2B K
U+FF2C L
U+FF2D M
U+FF2E N
U+FF2F O
U+FF30 P
U+FF31 Q
U+FF32 R
U+FF33 S
U+FF34 T
U+FF35 U
U+FF36 V
U+FF37 W
U+FF38 X
U+FF39 Y
U+FF3A Z
U+FF3B [
U+FF3D ]
U+FF3E ^
U+FF3F _ _
U+FF40 ```
U+FF41 a
U+FF42 b
U+FF43 c
U+FF44 d
U+FF45 e
U+FF46 f
U+FF47 g
U+FF48 h
U+FF49 i
U+FF4A j
U+FF4B k
U+FF4C l
U+FF4D m
U+FF4E n
U+FF4F o
U+FF50 p
U+FF51 q
U+FF52 r
U+FF53 s
U+FF54 t
U+FF55 u
U+FF56 v
U+FF57 w
U+FF58 x
U+FF59 y
U+FF5A z
U+FF5B {
U+FF5C `
U+FF5D }
U+FF5E ~
U+FFE4 `
U+FFE5 \
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment