The ü/ü 难题 - Nishu Goel

主要观点:在 epilot 的产品中为实体实现了搜索和过滤功能,用户大量使用,但出现了过滤包含变音符号(如元音变音、umlauts 等)的文件名的问题。深入研究逻辑后发现上传时文件名被微妙更改,存在背景编码转换,通过encodeURIComponent发现不同编码形式导致搜索故障,罪魁祸首是 NFD 和 NFC 两种编码类型,在 MacOS 上是 NFD,在 Linux 上是 NFC,解决方法是在上传后保存文件为实体前应用.normalize()确保文件名可统一搜索,还可编写迁移脚本来规范化所有现有非 ASCII 字符文件名,简单的字符串规范化在该案例中有效。
关键信息:用户大量使用搜索过滤功能,文件名编码问题导致搜索故障,不同系统的编码类型不同,解决办法是规范化文件名。
重要细节:如具体的编码形式%C3%BC%CC%88String.prototype.normalize()的使用及相关解释等,还提供了相关视频和链接以帮助理解。

阅读 8
0 条评论