首页 > 解决方案 > 概述 R 中的特殊字符

问题描述

是否概述了 R 中每个可能的特殊 unicode 字符?例如,“\U2264”是减号/等号。我想要一个可以用 R 编写的所有可能代码的列表。我知道我可以在这里使用 webscraping http://www.fileformat.info/info/charset/UTF-8/list.htm但我更喜欢一个列表是专门为 R 制作的。我已经使用了一点网页抓取,可以看到一些字符在 R 中不存在。

Characters <- "http://www.fileformat.info/info/charset/UTF-8/list.htm" %>% 
  read_html %>% 
  html_nodes("td.text-center:nth-child(1)") %>% 
  html_text

标签: runicode

解决方案


您可以捕获 R 的打印输出并检查其长度。如果它不是 1,那么 R 显示的是文字字符代码,而不是按原样打印。

例如:'\U2264' --> '≤'

例如:'\U0083' --> '\U0083'

这段代码允许您设置要检查的范围并返回一个数据框,指示该范围内的每个字符,无论它是否可打印。

start.code <- 0x2260
end.code <- 0x2300

result <- data.frame(
  code = sprintf("%04X", start.code : end.code),
  printable = sapply(start.code:end.code, function(x) nchar(capture.output(cat(intToUtf8(x)))) == 1)
)

输出

    code printable
1   2260     FALSE
2   2261      TRUE
3   2262     FALSE
4   2263     FALSE
5   2264      TRUE
6   2265      TRUE
7   2266     FALSE
8   2267     FALSE
9   2268     FALSE
10  2269     FALSE
11  226A      TRUE
12  226B      TRUE
13  226C     FALSE
14  226D     FALSE
15  226E     FALSE
16  226F     FALSE
17  2270     FALSE
18  2271     FALSE
19  2272     FALSE
20  2273     FALSE
21  2274     FALSE
22  2275     FALSE
23  2276     FALSE
24  2277     FALSE
25  2278     FALSE
26  2279     FALSE
27  227A     FALSE
28  227B     FALSE
29  227C     FALSE
30  227D     FALSE
31  227E     FALSE
32  227F     FALSE
33  2280     FALSE
34  2281     FALSE
35  2282     FALSE
36  2283     FALSE
37  2284     FALSE
38  2285     FALSE
39  2286     FALSE
40  2287     FALSE
41  2288     FALSE
42  2289     FALSE
43  228A     FALSE
44  228B     FALSE
45  228C     FALSE
46  228D     FALSE
47  228E     FALSE
48  228F     FALSE
49  2290     FALSE
50  2291     FALSE
51  2292     FALSE
52  2293     FALSE
53  2294     FALSE
54  2295     FALSE
55  2296     FALSE
56  2297     FALSE
57  2298     FALSE
58  2299     FALSE
59  229A     FALSE
60  229B     FALSE
61  229C     FALSE
62  229D     FALSE
63  229E     FALSE
64  229F     FALSE
65  22A0     FALSE
66  22A1     FALSE
67  22A2     FALSE
68  22A3     FALSE
69  22A4     FALSE
70  22A5     FALSE
71  22A6     FALSE
72  22A7     FALSE
73  22A8     FALSE
74  22A9     FALSE
75  22AA     FALSE
76  22AB     FALSE
77  22AC     FALSE
78  22AD     FALSE
79  22AE     FALSE
80  22AF     FALSE
81  22B0     FALSE
82  22B1     FALSE
83  22B2     FALSE
84  22B3     FALSE
85  22B4     FALSE
86  22B5     FALSE
87  22B6     FALSE
88  22B7     FALSE
89  22B8     FALSE
90  22B9     FALSE
91  22BA     FALSE
92  22BB     FALSE
93  22BC     FALSE
94  22BD     FALSE
95  22BE     FALSE
96  22BF     FALSE
97  22C0     FALSE
98  22C1     FALSE
99  22C2     FALSE
100 22C3     FALSE
101 22C4     FALSE
102 22C5      TRUE
103 22C6     FALSE
104 22C7     FALSE
105 22C8     FALSE
106 22C9     FALSE
107 22CA     FALSE
108 22CB     FALSE
109 22CC     FALSE
110 22CD     FALSE
111 22CE     FALSE
112 22CF     FALSE
113 22D0     FALSE
114 22D1     FALSE
115 22D2     FALSE
116 22D3     FALSE
117 22D4     FALSE
118 22D5     FALSE
119 22D6     FALSE
120 22D7     FALSE
121 22D8     FALSE
122 22D9     FALSE
123 22DA     FALSE
124 22DB     FALSE
125 22DC     FALSE
126 22DD     FALSE
127 22DE     FALSE
128 22DF     FALSE
129 22E0     FALSE
130 22E1     FALSE
131 22E2     FALSE
132 22E3     FALSE
133 22E4     FALSE
134 22E5     FALSE
135 22E6     FALSE
136 22E7     FALSE
137 22E8     FALSE
138 22E9     FALSE
139 22EA     FALSE
140 22EB     FALSE
141 22EC     FALSE
142 22ED     FALSE
143 22EE     FALSE
144 22EF     FALSE
145 22F0     FALSE
146 22F1     FALSE
147 22F2     FALSE
148 22F3     FALSE
149 22F4     FALSE
150 22F5     FALSE
151 22F6     FALSE
152 22F7     FALSE
153 22F8     FALSE
154 22F9     FALSE
155 22FA     FALSE
156 22FB     FALSE
157 22FC     FALSE
158 22FD     FALSE
159 22FE     FALSE
160 22FF     FALSE
161 2300     FALSE

推荐阅读