今天在使用electron对我的网页进行包装的时候,想着给软件加个好看的图标,就开始对electron的package.json文件中加入图标路径。
就在我配置好后执行npm run build时,出现了这个报错:
C:\Users\**\**\ww\my-electron>npm run build
> my-electron@1.0.0 build
> electron-builder --win
• electron-builder version=24.13.3 os=10.0.19045
• loaded configuration file=package.json ("build" field)
• description is missed in the package.json appPackageFile=C:\Users\**\**\ww\my-electron\package.json
• writing effective config file=out\builder-effective-config.yaml
• packaging platform=win32 arch=x64 electron=31.3.1 appOutDir=out\win-unpacked
• downloading url=https://npmmirror.com/mirrors/electron/31.3.1/electron-v31.3.1-win32-x64.zip size=111 MB parts=8
• downloaded url=https://npmmirror.com/mirrors/electron/31.3.1/electron-v31.3.1-win32-x64.zip duration=12.598s
⨯ cannot find specified resource "C:\Users\**\**\ww.ico", nor relative to "C:\Users\**\**\ww\my-electron\build", neither relative to project dir ("C:\Users\**\**\ww\my-electron")
然后欸,奇怪了,明明路径是直接复制过来的,为什么会报错呢?
我就想着是不是\和/的问题,因为之前也遇到过这个问题,这样试着解决了,但是这里不对,我就把这个路径又重新在文件夹中运行。
啊?真的找不到,我就尝试着手动输入图标文件路径,这次又找到了,对比两次路径是一模一样,这时候我注意到命令行的报错路径前面不管怎么改,复制的路径总会又一个[]。
这个框到底是什么,我上csdn查看也没有搜到想要的结果,最后将图片交给gpt后,他的回答有个名词很引人注目“隐藏字符”。
是啊,之前在idea复制路径的时候有时候会莫名其妙路径前面多出一个框,一般都是直接删除就行,但是在这个json文件中,这个字符无法被表示出来,就成为了一个隐藏字符,但是命令行可以正确将其显示。
所以解决这个路径问题很好的办法就是:
1,要么路径自己一个一个字打;
2,要么复制路径后将路径复制的前面一截删除,然后重新输入比如 "C:\Users\,我就将"C删除然后重新手打,将输入调到C前面直接删除是不行的,他会直接将“删除。
那么这个隐藏字符到底是什么呢?
\u202A
是 Unicode 编码中的左至右嵌入(Left-to-Right Embedding, LRE)字符,其代码点是 U+202A。这个字符用于控制文本在视觉上的排列方向,特别是在处理从右至左(如阿拉伯语和希伯来语)和从左至右(如英语)混合书写系统时。LRE 字符指示接下来的文本应该从左至右显示,即使它被包围在从右至左的文字环境中。
在编程和文件路径中,通常不会使用这样的控制字符。如果 \u202A
出现在文件路径或代码中,它可能是由于以下原因:
- 复制粘贴错误:从包含特殊格式的文本中复制时,可能不小心包含了这个字符。
- 编码问题:在文本编码转换过程中可能不正确地引入了这个字符。
- 文本编辑器问题:某些文本编辑器可能在显示或编辑时添加了这个字符。
最后反思一下,这些小问题也是自己偷懒造成的,想着直接复制路径就简单些,结果花费了更长时间去解决错误。