只有Windows代码页1252(Latin-1)中的少数字符不允许作为名称。请注意,Windows资源管理器会从名称中去掉前导空格,并且不允许您将文件称为空格点之类的字符(如␣.txt),尽管在文件系统中允许这样做!但是,只有空格而没有文件扩展名是无效的。 如果你通过Python脚本创建文件(我就是这么做的),那么你可以很容易地找出实际上允许的内容以及字符的排序顺序。排序顺序根据你的语言环境而变化!下面是my script的结果,在德语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
禁止:
\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
9条答案
按热度按时间zrfyljdw1#
根据ASCII表,第一个可见字符是'!'。最后一个字符是'~',因此“!file.doc”或“~file.doc'将根据您的排名顺序排在最前面。您可以在此处查看ASCII表:http://www.asciitable.com/
6ojccjat2#
我也遇到了同样的问题。我想把文件夹“埋”在排序的底部,而不是用“!”字符把它放在顶部。Windows识别大多数特殊字符就是“special”,因此它们都在顶部排序。
但是,如果你想的不是英语字符,你会发现很多运气。我使用了字符Map和Arial字体,向下滚动过'~'和其他希腊字母。Capitol Xi,∨,对我来说最好,但我没有检查,看看哪个是真正的'最低'的排序。
bq9c1y663#
如果你在谷歌上搜索排序顺序Windows资源管理器,你会发现Windows资源管理器(自Windows XP以来)显然是按照“按名称”的排序顺序使用函数StrCmpLogicalW。我没有找到关于处理下划线字符的信息。我被文档中的以下注解逗乐了:
这个函数的行为,以及它返回的结果,可以在不同的版本中发生变化。
n6lpvg4x4#
只有Windows代码页1252(Latin-1)中的少数字符不允许作为名称。请注意,Windows资源管理器会从名称中去掉前导空格,并且不允许您将文件称为空格点之类的字符(如
␣.txt
),尽管在文件系统中允许这样做!但是,只有空格而没有文件扩展名是无效的。如果你通过Python脚本创建文件(我就是这么做的),那么你可以很容易地找出实际上允许的内容以及字符的排序顺序。排序顺序根据你的语言环境而变化!下面是my script的结果,在德语Windows 10 Pro 64位上运行Python 2.7.15:
允许:
禁止:
Explorer如何为我排序文件的屏幕截图:
高亮显示的文件中的white smiley face是我手动添加的(Alt+1),以显示这个Unicode字符(U+263 A)的结束位置,参见Jimbugs' answer。
第一个文件的名称为空格(0x 20),第二个文件的名称为不间断空格(0xa 0)。第三列下半部分的文件看起来没有名称,使用十六进制代码0x 81、0x 8D、0x 8 F、0x 90、0x 9D(从上到下按此顺序)。
vuv7lop35#
根据我的测试,有三个字符排序标准,如下所述。除此之外,较短的字符串排序在以相同字符开头的较长字符串之上。
**注意:**此测试仅查看第一个字符排序,而未查看this answer描述的边缘情况,该测试发现,对于第一个字符之后的所有字符,数字优先于符号(即顺序为1.符号2.数字3.第一个字符的字母,1.数字2.符号3.之后的字母)。此答案还表明排序的Unicode/ASCII层可能不完全一致。如果有时间查看这些边缘情况,我将更新此答案。
**注意:**请务必注意,排序顺序可能会发生变化,如this answer所述。我不清楚实际变化的程度。我已经做了这项测试,发现它在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.)信件
因此,来自任何语言的任何符号出现在来自任何语言的任何数字之前,而来自任何语言的任何字母出现在所有符号和数字之后。
拉丁文
希腊语Name
斯拉夫文
希伯来语Name
阿拉伯语Name
改编自此处:https://superuser.com/a/971721/496260
kdfy810k6#
我知道这是一个老问题,但检查这个问题很容易。只需创建一个文件夹,其中包含一堆虚拟文件,这些文件的名称是键盘上的每个字符。当然,您不能真正使用|/:*?“〈〉和前导和尾随空格是一个糟糕的主意。
如果您这样做了,而看起来没有人这样做,您会发现FIRST字符的Windows排序顺序是1.特殊字符2.数字3.字母
但对于后续字符,它似乎是1.数字2.特殊字符3.字母
数字有点奇怪,这要感谢Y2K事件后的“改进”。你会认为特殊字符会按ASCII顺序排序,但也有例外,特别是前两个,撇号和破折号,以及后两个,加号和等号。此外,我听说过但没有真正看到破折号被忽略的事情。事实上,这不是我的经验。
因此,ShxFee,我假设您的意思是排序应该是升序,而不是降序,并且名称的第一个字符在排序顺序中的最顶部(第一个)字符是撇号。
正如NigelTouch所说,特殊字符不会按ASCII排序,但我在上面的注解中明确指出了哪些字符可以按正常ASCII排序,哪些字符不可以按正常ASCII排序。但他关于特殊字符总是排在第一位的说法肯定是错误的。正如我在上面提到的,这似乎只适用于名称的第一个字符。
jdg4fx2g7#
我知道已经有了一个答案-这是一个老问题-但我想知道同样的事情,在找到这个答案后,我自己做了一点实验,并有(海事组织)一个值得的补充讨论。
不可见的字符仍然可以在文件夹名称中使用-插入了一个占位符-但对ASCII值的排序似乎仍然有效。
我在Windows7上进行了测试,按住Alt键,用数字键盘输入ASCII码。我测试的次数不多,但成功地创建了以ASCII 1、ASCII 2和ASCII 3开头的文件夹名称。这些名称对应于SOH、STX和ETX。它分别显示快乐的脸、填充的快乐的脸和填充的心。
我不确定我是否可以在这里复制,但我会在下一行输入并提交。
文件夹名称
文件夹名称
►文件夹名称
y3bcpkx18#
虽然带有“!”的答案被选为正确答案,这是不正确的。我不确定Windows 10/8.1/8中的Windows资源管理器,但我确定有关Windows 7和XP。
将文件名移到最顶端的字符是“'”(alt+39),其次是“-”(减号)。
但是Windows资源管理器中的排序顺序更为复杂-它还取决于文件名的长度,并且数字被非常特殊地对待。
第二个字符(以及后面的字符)的处理方式不同。在这里,你通常最好使用““(空格键),然后是上面提到的字符,但你必须尝试一下,因为找到确切的算法并不容易:
下面是一个正确排序顺序的示例,便于您理解:
1.文件:“””
1.文件:“''”(较长的文件名)
1.文件:“''”(等等)
1.文件:“-”
1.文件:“--”
1.文件:“---”(依此类推)
1.文件:“--”(使用空格键)
1.文件:“''”(空格键两次,因此文件名更长)
1.文件:“′ ′ ′”(最前面字符,但文件名较长!)
1.文件:“'' 0”(文件名较短,但输入了数字之类的字符)
再举一个例子:
1.“'' aaaa”(“'”比空格键好,而空格键比“a”好)
1.“"”
1.“'啊啊啊啊啊**”
相同文件长度:
1.“-- aa”(在本例中,空格键位于“-”之前!)
1.“---aa”
1.“--aaa”
最后一个关于数字的特殊逻辑:
1.“0000000”
1.“0”
1.“00001”
但尽管如此:以这种方式重命名文件夹或文件,可以快速找到要搜索的内容。
atmip9wb9#
至少在windows7上,名称中的减号(-)和(')似乎被忽略了,除了一个怪癖:在其他方面相同的名称中,'将排序在-之前,例如:(a 'a)将在(a-a)之上排序
空字符串的排序优先于其他所有字符串,这意味着例如aa的排序优先于aaa,因为两个a字母之后的“空字符串”将排序在第三个“a”之前。
这也意味着aa将排序在a 'a之上,因为两个a字母之间的'空字符串'将排序在'标记之上。
接下来的是,'本身将首先排序,因为从技术上讲,它是一个空字符串。然而,在它后面添加例如字母将对名称排序,就好像'不存在一样。
因为第一个“未忽略”字符(据我所知)是空格,如果你想把“真实的姓名”排在其他名字的前面,最好的方法是“后面跟着空格,然后是你想实际使用的名字。例如:(“先”)
当然,你也可以在强空格中使用多个空格,比如(' firster)和(' firstest)在f前面加两个或三个空格。
虽然减号排序下面'在其他类似的名称,有没有其他的区别排序(据我所知),我发现减号视觉上更清晰,所以如果我想把东西放在列表的顶部,我会使用减号后面的空格,然后'实际名称',例如:(-第一个档案-)
如果你担心在文件名上使用空格,那么感叹号(!)是次佳选择--因为它可以作为字符串的第一个字符出现,所以更容易使用。