2024-07-03 06:40:01 发布
网友
在处理aws3bucket上的UTF-8格式的文件名时,我发现一些引用的文件名(在s3bucket上的文件链接中)可能与python应用程序(我使用的是boto库)代码引用的相同文件名不同。正如我发现的那样,由于normalization forms of unicode的不同,使用unicodedata.normalize后问题就消失了。在
但是,我还没有找到任何关于AWS(NFC,NFKC,NFD或{})所使用的规范化形式的信息,因此我非常感谢trasted source提供这些信息的任何建议,谢谢。在
NFC
NFKC
NFD
看起来S3本身没有应用任何规范化。如果我上传(使用s3web控制台)一个unicode名称的文件(例如a∗渲染.txt)从Mac到S3,再从Windows,我将在S3中得到两个文件。它们在S3控制台中看起来是一样的,但是S3认为它们是不同的,因为名称的编码不同。在
您必须考虑它对应用程序(用户)的影响,并相应地进行调整。例如,如果您的用户可能在不同的环境(Mac vs Windows vs Linux)之间切换,并期望一致的跨平台行为,那么您似乎需要自己规范化名称。如果你的用户一直在一个平台上工作,那么你就不必在意了。在
看起来S3本身没有应用任何规范化。如果我上传(使用s3web控制台)一个unicode名称的文件(例如a∗渲染.txt)从Mac到S3,再从Windows,我将在S3中得到两个文件。它们在S3控制台中看起来是一样的,但是S3认为它们是不同的,因为名称的编码不同。在
您必须考虑它对应用程序(用户)的影响,并相应地进行调整。例如,如果您的用户可能在不同的环境(Mac vs Windows vs Linux)之间切换,并期望一致的跨平台行为,那么您似乎需要自己规范化名称。如果你的用户一直在一个平台上工作,那么你就不必在意了。在
相关问题 更多 >
编程相关推荐