shx*_*fee 49 windows algorithm programming-languages char special-characters
例如,在Windows文件夹中,如果我们创建一些文件并将其命名为1.html,2.txt,3.txt,photo.jpg,zen.png,则顺序将保持不变.但是如果我们创建另一个名为_file.doc的文件,它将被放在顶部.(考虑到我们按名称降序排序)
同样,将被视为第一个的角色是什么,这样如果我使用该角色,它会将文件放在层次结构的顶部?
lim*_*fan 30
第一个可见的角色是'!' 根据ASCII表格.最后一个是'〜'所以"!file.doc"或"~file.doc"将取决于您的排名顺序.您可以在这里查看ascii表: http:// www .asciitable.com /
小智 25
我有同样的问题.我想在排序的底部'埋葬'一个文件夹,而不是用'!'将它带到顶部.字符.Windows将大多数特殊字符识别为"特殊",因此它们在顶部排序.
但是,如果你认为在英文字符之外,你会发现很多运气.我使用了字符映射和arial字体,向下滚动到'〜',其他滚动到希腊字母表.国会大厦Xi,worked,对我来说效果最好,但我没有检查哪个是实际的"最低".
hmu*_*ner 14
如果您使用google进行排序顺序 Windows资源管理器,您会发现Windows资源管理器(自Windows XP以来)显然在"按名称"排序顺序中使用函数StrCmpLogicalW.我没有找到关于下划线字符处理的信息.我对文档中的以下注释感到好笑:
此函数的行为以及它返回的结果可以在发行版之间发生变化....
小智 6
我知道这是一个老问题,但很容易检查出来.只需创建一个包含一堆虚拟文件的文件夹,这些文件的名称是键盘上的每个字符.当然,你不能真正使用\ | /:*?"<>和领先和尾随空白是一个可怕的想法.
如果你这样做,看起来没人做,你会发现FIRST字符的Windows排序顺序为1.特殊字符2.数字3.字母
但对于后续角色,它似乎是1.数字2.特殊字符3.字母
由于Y2K非事件后的"改进",数字有点奇怪.你会觉得特殊字符会排序ASCII顺序,但也有例外,尤其是前两者,撇号和破折号,最后两,加和平等.此外,我听说过,但实际上没有看到有关破折号被忽略的事情.事实上,这不是我的经验.
所以,ShxFee,我假设你的意思是排序应该是升序而不是降序,并且名称的第一个字符的排序顺序中的最顶层(第一个)字符是撇号.
正如NigelTouch所说,特殊字符不会排序为ASCII,但我上面的注释确切地说明了以正常的ASCII顺序排序和排序的内容.但他总是先排序的特殊字符肯定是错的.如上所述,对于名称的第一个字符,这似乎只是真实的.
根据我的测试,有以下三个字符排序标准。除此之外,较短的字符串排序在以相同字符开头的较长字符串之上。
注意:此测试仅查看第一个字符排序,并没有查看此答案描述的边缘情况,它发现,对于第一个字符之后的所有字符,数字优先于符号(即顺序为 1。符号 2。数字 3. 第一个字符的字母,1. 数字 2. 符号 3. 后面的字母)。这个答案还表明 Unicode/ASCII 排序层可能不完全一致。如果我有时间研究这些边缘情况,我会更新这个答案。
注意:请务必注意,排序顺序可能会按照此答案所述进行更改。我不清楚这实际上改变的程度。我已经完成了这个测试,发现它在 Windows 7 和 Windows 10 上都有效。
符号
拉丁语(按 Unicode 值 (U+xxxx)
排序)希腊语(按 Unicode 值 (U+xxxx)
排序)西里尔文(按 Unicode 值 (U+xxxx)
排序)希伯来语(按 Unicode 值 (U+xxxx) 排序)
阿拉伯语(按 Unicode 值 (U+xxxx) 排序)
数字
拉丁语(按 Unicode 值 (U+xxxx)
排序)希腊语(按 Unicode 值 (U+xxxx)
排序)西里尔文(按 Unicode 值 (U+xxxx)
排序)希伯来语(按 Unicode 值 (U+xxxx) 排序)
阿拉伯语(按 Unicode 值 (U+xxxx) 排序)
字母
拉丁语(按 Unicode 值 (U+xxxx)
排序)希腊语(按 Unicode 值 (U+xxxx)
排序)西里尔字母(按 Unicode 值 (U+xxxx)
排序)希伯来语(按 Unicode 值 (U+xxxx) 排序)
阿拉伯语(按 Unicode 值 (U+xxxx) 排序)
排序规则序列与观察顺序
值得注意的是,实际上有两种看待这个的方式。最终,您拥有的是按特定顺序应用的排序规则,反过来,这会产生一个观察到的顺序。旧规则的排序嵌套在新规则的排序之下。这意味着应用的第一个规则是观察到的最后一个规则,而应用的最后一个规则是观察到的第一个或最上面的规则。
排序规则序列
1.) 按 Unicode 值 (U+xxxx)
排序 2.) 按文化/语言
排序 3.) 按类型(符号、数字、字母)排序
观察顺序
最高级别的分组按类型按以下顺序...
1.) 符号
2.) 数字
3.) 字母
因此,任何语言的任何符号都出现在任何语言的任何数字之前,而任何语言的任何字母都出现在所有符号和数字之后。
分组的第二级是按文化/语言。以下顺序似乎适用于此:
拉丁语
希腊语
西里尔语
希伯来语
阿拉伯语
观察到的最低规则是 Unicode 顺序,因此类型语言组中的项目按 Unicode 值 (U+xxxx) 排序。
改编自:https : //superuser.com/a/971721/496260
Windows代码页1252(Latin-1)中只有几个字符不能用作名称。请注意?.txt
,尽管在文件系统中允许这样做,但Windows资源管理器将删除名称中的前导空格,并且不允许您使用点(例如)来命名文件空间!但是只有一个空格,没有文件扩展名是无效的。
如果通过例如Python脚本创建文件(这就是我所做的),那么您可以轻松地找出实际允许的内容以及字符的排序顺序。排序顺序因您的语言环境而异!以下是我的脚本的结果,该脚本在德语 Windows 10 Pro 64位上使用Python 2.7.15运行:
允许:
32 20 SPACE
! 33 21 EXCLAMATION MARK
# 35 23 NUMBER SIGN
$ 36 24 DOLLAR SIGN
% 37 25 PERCENT SIGN
& 38 26 AMPERSAND
' 39 27 APOSTROPHE
( 40 28 LEFT PARENTHESIS
) 41 29 RIGHT PARENTHESIS
+ 43 2B PLUS SIGN
, 44 2C COMMA
- 45 2D HYPHEN-MINUS
. 46 2E FULL STOP
/ 47 2F SOLIDUS
0 48 30 DIGIT ZERO
1 49 31 DIGIT ONE
2 50 32 DIGIT TWO
3 51 33 DIGIT THREE
4 52 34 DIGIT FOUR
5 53 35 DIGIT FIVE
6 54 36 DIGIT SIX
7 55 37 DIGIT SEVEN
8 56 38 DIGIT EIGHT
9 57 39 DIGIT NINE
; 59 3B SEMICOLON
= 61 3D EQUALS SIGN
@ 64 40 COMMERCIAL AT
A 65 41 LATIN CAPITAL LETTER A
B 66 42 LATIN CAPITAL LETTER B
C 67 43 LATIN CAPITAL LETTER C
D 68 44 LATIN CAPITAL LETTER D
E 69 45 LATIN CAPITAL LETTER E
F 70 46 LATIN CAPITAL LETTER F
G 71 47 LATIN CAPITAL LETTER G
H 72 48 LATIN CAPITAL LETTER H
I 73 49 LATIN CAPITAL LETTER I
J 74 4A LATIN CAPITAL LETTER J
K 75 4B LATIN CAPITAL LETTER K
L 76 4C LATIN CAPITAL LETTER L
M 77 4D LATIN CAPITAL LETTER M
N 78 4E LATIN CAPITAL LETTER N
O 79 4F LATIN CAPITAL LETTER O
P 80 50 LATIN CAPITAL LETTER P
Q 81 51 LATIN CAPITAL LETTER Q
R 82 52 LATIN CAPITAL LETTER R
S 83 53 LATIN CAPITAL LETTER S
T 84 54 LATIN CAPITAL LETTER T
U 85 55 LATIN CAPITAL LETTER U
V 86 56 LATIN CAPITAL LETTER V
W 87 57 LATIN CAPITAL LETTER W
X 88 58 LATIN CAPITAL LETTER X
Y 89 59 LATIN CAPITAL LETTER Y
Z 90 5A LATIN CAPITAL LETTER Z
[ 91 5B LEFT SQUARE BRACKET
\\ 92 5C REVERSE SOLIDUS
] 93 5D RIGHT SQUARE BRACKET
^ 94 5E CIRCUMFLEX ACCENT
_ 95 5F LOW LINE
` 96 60 GRAVE ACCENT
a 97 61 LATIN SMALL LETTER A
b 98 62 LATIN SMALL LETTER B
c 99 63 LATIN SMALL LETTER C
d 100 64 LATIN SMALL LETTER D
e 101 65 LATIN SMALL LETTER E
f 102 66 LATIN SMALL LETTER F
g 103 67 LATIN SMALL LETTER G
h 104 68 LATIN SMALL LETTER H
i 105 69 LATIN SMALL LETTER I
j 106 6A LATIN SMALL LETTER J
k 107 6B LATIN SMALL LETTER K
l 108 6C LATIN SMALL LETTER L
m 109 6D LATIN SMALL LETTER M
n 110 6E LATIN SMALL LETTER N
o 111 6F LATIN SMALL LETTER O
p 112 70 LATIN SMALL LETTER P
q 113 71 LATIN SMALL LETTER Q
r 114 72 LATIN SMALL LETTER R
s 115 73 LATIN SMALL LETTER S
t 116 74 LATIN SMALL LETTER T
u 117 75 LATIN SMALL LETTER U
v 118 76 LATIN SMALL LETTER V
w 119 77 LATIN SMALL LETTER W
x 120 78 LATIN SMALL LETTER X
y 121 79 LATIN SMALL LETTER Y
z 122 7A LATIN SMALL LETTER Z
{ 123 7B LEFT CURLY BRACKET
} 125 7D RIGHT CURLY BRACKET
~ 126 7E TILDE
\x7f 127 7F DELETE
\x80 128 80 EURO SIGN
\x81 129 81
\x82 130 82 SINGLE LOW-9 QUOTATION MARK
\x83 131 83 LATIN SMALL LETTER F WITH HOOK
\x84 132 84 DOUBLE LOW-9 QUOTATION MARK
\x85 133 85 HORIZONTAL ELLIPSIS
\x86 134 86 DAGGER
\x87 135 87 DOUBLE DAGGER
\x88 136 88 MODIFIER LETTER CIRCUMFLEX ACCENT
\x89 137 89 PER MILLE SIGN
\x8a 138 8A LATIN CAPITAL LETTER S WITH CARON
\x8b 139 8B SINGLE LEFT-POINTING ANGLE QUOTATION
\x8c 140 8C LATIN CAPITAL LIGATURE OE
\x8d 141 8D
\x8e 142 8E LATIN CAPITAL LETTER Z WITH CARON
\x8f 143 8F
\x90 144 90
\x91 145 91 LEFT SINGLE QUOTATION MARK
\x92 146 92 RIGHT SINGLE QUOTATION MARK
\x93 147 93 LEFT DOUBLE QUOTATION MARK
\x94 148 94 RIGHT DOUBLE QUOTATION MARK
\x95 149 95 BULLET
\x96 150 96 EN DASH
\x97 151 97 EM DASH
\x98 152 98 SMALL TILDE
\x99 153 99 TRADE MARK SIGN
\x9a 154 9A LATIN SMALL LETTER S WITH CARON
\x9b 155 9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
\x9c 156 9C LATIN SMALL LIGATURE OE
\x9d 157 9D
\x9e 158 9E LATIN SMALL LETTER Z WITH CARON
\x9f 159 9F LATIN CAPITAL LETTER Y WITH DIAERESIS
\xa0 160 A0 NON-BREAKING SPACE
\xa1 161 A1 INVERTED EXCLAMATION MARK
\xa2 162 A2 CENT SIGN
\xa3 163 A3 POUND SIGN
\xa4 164 A4 CURRENCY SIGN
\xa5 165 A5 YEN SIGN
\xa6 166 A6 PIPE, BROKEN VERTICAL BAR
\xa7 167 A7 SECTION SIGN
\xa8 168 A8 SPACING DIAERESIS - UMLAUT
\xa9 169 A9 COPYRIGHT SIGN
\xaa 170 AA FEMININE ORDINAL INDICATOR
\xab 171 AB LEFT DOUBLE ANGLE QUOTES
\xac 172 AC NOT SIGN
\xad 173 AD SOFT HYPHEN
\xae 174 AE REGISTERED TRADE MARK SIGN
\xaf 175 AF SPACING MACRON - OVERLINE
\xb0 176 B0 DEGREE SIGN
\xb1 177 B1 PLUS-OR-MINUS SIGN
\xb2 178 B2 SUPERSCRIPT TWO - SQUARED
\xb3 179 B3 SUPERSCRIPT THREE - CUBED
\xb4 180 B4 ACUTE ACCENT - SPACING ACUTE
\xb5 181 B5 MICRO SIGN
\xb6 182 B6 PILCROW SIGN - PARAGRAPH SIGN
\xb7 183 B7 MIDDLE DOT - GEORGIAN COMMA
\xb8 184 B8 SPACING CEDILLA
\xb9 185 B9 SUPERSCRIPT ONE
\xba 186 BA MASCULINE ORDINAL INDICATOR
\xbb 187 BB RIGHT DOUBLE ANGLE QUOTES
\xbc 188 BC FRACTION ONE QUARTER
\xbd 189 BD FRACTION ONE HALF
\xbe 190 BE FRACTION THREE QUARTERS
\xbf 191 BF INVERTED QUESTION MARK
\xc0 192 C0 LATIN CAPITAL LETTER A WITH GRAVE
\xc1 193 C1 LATIN CAPITAL LETTER A WITH ACUTE
\xc2 194 C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
\xc3 195 C3 LATIN CAPITAL LETTER A WITH TILDE
\xc4 196 C4 LATIN CAPITAL LETTER A WITH DIAERESIS
\xc5 197 C5 LATIN CAPITAL LETTER A WITH RING ABOVE
\xc6 198 C6 LATIN CAPITAL LETTER AE
\xc7 199 C7 LATIN CAPITAL LETTER C WITH CEDILLA
\xc8 200 C8 LATIN CAPITAL LETTER E WITH GRAVE
\xc9 201 C9 LATIN CAPITAL LETTER E WITH ACUTE
\xca 202 CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
\xcb 203 CB LATIN CAPITAL LETTER E WITH DIAERESIS
\xcc 204 CC LATIN CAPITAL LETTER I WITH GRAVE
\xcd 205 CD LATIN CAPITAL LETTER I WITH ACUTE
\xce 206 CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
\xcf 207 CF LATIN CAPITAL LETTER I WITH DIAERESIS
\xd0 208 D0 LATIN CAPITAL LETTER ETH
\xd1 209 D1 LATIN CAPITAL LETTER N WITH TILDE
\xd2 210 D2 LATIN CAPITAL LETTER O WITH GRAVE
\xd3 211 D3 LATIN CAPITAL LETTER O WITH ACUTE
\xd4 212 D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
\xd5 213 D5 LATIN CAPITAL LETTER O WITH TILDE
\xd6 214 D6 LATIN CAPITAL LETTER O WITH DIAERESIS
\xd7 215 D7 MULTIPLICATION SIGN
\xd8 216 D8 LATIN CAPITAL LETTER O WITH SLASH
\xd9 217 D9 LATIN CAPITAL LETTER U WITH GRAVE
\xda 218 DA LATIN CAPITAL LETTER U WITH ACUTE
\xdb 219 DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
\xdc 220 DC LATIN CAPITAL LETTER U WITH DIAERESIS
\xdd 221 DD LATIN CAPITAL LETTER Y WITH ACUTE
\xde 222 DE LATIN CAPITAL LETTER THORN
\xdf 223 DF LATIN SMALL LETTER SHARP S
\xe0 224 E0 LATIN SMALL LETTER A WITH GRAVE
\xe1 225 E1 LATIN SMALL LETTER A WITH ACUTE
\xe2 226 E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
\xe3 227 E3 LATIN SMALL LETTER A WITH TILDE
\xe4 228 E4 LATIN SMALL LETTER A WITH DIAERESIS
\xe5 229 E5 LATIN SMALL LETTER A WITH RING ABOVE
\xe6 230 E6 LATIN SMALL LETTER AE
\xe7 231 E7 LATIN SMALL LETTER C WITH CEDILLA
\xe8 232 E8 LATIN SMALL LETTER E WITH GRAVE
\xe9 233 E9 LATIN SMALL LETTER E WITH ACUTE
\xea 234 EA LATIN SMALL LETTER E WITH CIRCUMFLEX
\xeb 235 EB LATIN SMALL LETTER E WITH DIAERESIS
\xec 236 EC LATIN SMALL LETTER I WITH GRAVE
\xed 237 ED LATIN SMALL LETTER I WITH ACUTE
\xee 238 EE LATIN SMALL LETTER I WITH CIRCUMFLEX
\xef 239 EF LATIN SMALL LETTER I WITH DIAERESIS
\xf0 240 F0 LATIN SMALL LETTER ETH
\xf1 241 F1 LATIN SMALL LETTER N WITH TILDE
\xf2 242 F2 LATIN SMALL LETTER O WITH GRAVE
\xf3 243 F3 LATIN SMALL LETTER O WITH ACUTE
\xf4 244 F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
\xf5 245 F5 LATIN SMALL LETTER O WITH TILDE
\xf6 246 F6 LATIN SMALL LETTER O WITH DIAERESIS
\xf7 247 F7 DIVISION SIGN
\xf8 248 F8 LATIN SMALL LETTER O WITH SLASH
\xf9 249 F9 LATIN SMALL LETTER U WITH GRAVE
\xfa 250 FA LATIN SMALL LETTER U WITH ACUTE
\xfb 251 FB LATIN SMALL LETTER U WITH CIRCUMFLEX
\xfc 252 FC LATIN SMALL LETTER U WITH DIAERESIS
\xfd 253 FD LATIN SMALL LETTER Y WITH ACUTE
\xfe 254 FE LATIN SMALL LETTER THORN
\xff 255 FF LATIN SMALL LETTER Y WITH DIAERESIS
Run Code Online (Sandbox Code Playgroud)
禁止:
\x00 0 00 NULL CHAR
\x01 1 01 START OF HEADING
\x02 2 02 START OF TEXT
\x03 3 03 END OF TEXT
\x04 4 04 END OF TRANSMISSION
\x05 5 05 ENQUIRY
\x06 6 06 ACKNOWLEDGEMENT
\x07 7 07 BELL
\x08 8 08 BACK SPACE
\t 9 09 HORIZONTAL TAB
\n 10 0A LINE FEED
\x0b 11 0B VERTICAL TAB
\x0c 12 0C FORM FEED
\r 13 0D CARRIAGE RETURN
\x0e 14 0E SHIFT OUT / X-ON
\x0f 15 0F SHIFT IN / X-OFF
\x10 16 10 DATA LINE ESCAPE
\x11 17 11 DEVICE CONTROL 1 (OFT. XON)
\x12 18 12 DEVICE CONTROL 2
\x13 19 13 DEVICE CONTROL 3 (OFT. XOFF)
\x14 20 14 DEVICE CONTROL 4
\x15 21 15 NEGATIVE ACKNOWLEDGEMENT
\x16 22 16 SYNCHRONOUS IDLE
\x17 23 17 END OF TRANSMIT BLOCK
\x18 24 18 CANCEL
\x19 25 19 END OF MEDIUM
\x1a 26 1A SUBSTITUTE
\x1b 27 1B ESCAPE
\x1c 28 1C FILE SEPARATOR
\x1d 29 1D GROUP SEPARATOR
\x1e 30 1E RECORD SEPARATOR
\x1f 31 1F UNIT SEPARATOR
" 34 22 QUOTATION MARK
* 42 2A ASTERISK
: 58 3A COLON
< 60 3C LESS-THAN SIGN
> 62 3E GREATER-THAN SIGN
? 63 3F QUESTION MARK
| 124 7C VERTICAL LINE
Run Code Online (Sandbox Code Playgroud)
资源管理器如何为我排序文件的屏幕截图:
高亮显示的文件带有?我手动添加了白色笑脸(Alt + 1),以显示此Unicode字符(U + 263A)的结尾位置,请参阅Jimbugs的答案。
第一个文件的名称为空格(0x20),第二个文件为不间断空格(0xa0)。第三行下半部分中看起来没有名称的文件使用十六进制代码0x81、0x8D,0x8F,0x90、0x9D的字符(从上到下的顺序)。