HTML 无法正确读取图像标签 src 中的 unicode
HTML can't properly read unicode in image tag src
我在 html、css 和 js 中使用 electron。对于我的桌面应用程序,我想使用 img 标签从我的本地存储导入图像。但是,我的文件名包含一个 unicode(例如 #)。当 HTML 尝试获取图像时,请从下面的示例 unicode.See 开始删除文件名的后半部分。
<img src= "path/to/my/example#file.png">
这就变成了,src= "path/to/my/example"
删除Unicode后面的部分。
在控制台返回我 ERR_FILE_NOT_FOUND。
使用 %23 可能是一种选择,但是,
不幸的是,文件名是不可预测的,它会根据文件而变化(我导入了几张图片)。因此,使用 javascript 自动获取文件名和创建 HTML 标签。有没有办法让 javascirpt 自动捕获字符串(文件路径)中的 unicode 并强制执行它以便 html 可以读取它?
您需要 'url encode' 也称为 'percent encode' 所有特殊字符。在您的示例中,将 #
替换为 %23
。
您还在属性中错误地使用了 :
而不是 =
:
<img src="path/to/my/example#file.png">
#
不是您所说的“unicode”。它只是一个普通的 ASCII 字符。但是,在 url 中,它恰好是一个 reserved 字符,用于表示资源中的锚点,因此不是资源路径的一部分,它是为什么你看到它被剥掉了。
因此,如果要在路径本身内部使用,则必须 url-encode(即 percent-encode)#
字符作为 %23
,例如:
<img src="path/to/my/example%23file.png">
既然您说您需要通过 JavaScript 生成此 HTML,您将需要让脚本解析文件路径并根据需要对任何保留字符进行编码。事实上,JavaScript 有 built-in 个功能正是为了这个目的:encodeURI()
和 encodeURIComponent()
.
我在 html、css 和 js 中使用 electron。对于我的桌面应用程序,我想使用 img 标签从我的本地存储导入图像。但是,我的文件名包含一个 unicode(例如 #)。当 HTML 尝试获取图像时,请从下面的示例 unicode.See 开始删除文件名的后半部分。
<img src= "path/to/my/example#file.png">
这就变成了,src= "path/to/my/example"
删除Unicode后面的部分。 在控制台返回我 ERR_FILE_NOT_FOUND。
使用 %23 可能是一种选择,但是, 不幸的是,文件名是不可预测的,它会根据文件而变化(我导入了几张图片)。因此,使用 javascript 自动获取文件名和创建 HTML 标签。有没有办法让 javascirpt 自动捕获字符串(文件路径)中的 unicode 并强制执行它以便 html 可以读取它?
您需要 'url encode' 也称为 'percent encode' 所有特殊字符。在您的示例中,将 #
替换为 %23
。
您还在属性中错误地使用了 :
而不是 =
:
<img src="path/to/my/example#file.png">
#
不是您所说的“unicode”。它只是一个普通的 ASCII 字符。但是,在 url 中,它恰好是一个 reserved 字符,用于表示资源中的锚点,因此不是资源路径的一部分,它是为什么你看到它被剥掉了。
因此,如果要在路径本身内部使用,则必须 url-encode(即 percent-encode)#
字符作为 %23
,例如:
<img src="path/to/my/example%23file.png">
既然您说您需要通过 JavaScript 生成此 HTML,您将需要让脚本解析文件路径并根据需要对任何保留字符进行编码。事实上,JavaScript 有 built-in 个功能正是为了这个目的:encodeURI()
和 encodeURIComponent()
.