CKEditor URL 附加到我的工作目录
CKEditor URL is appended to my working directory
我正在使用 CKEditor 来获得所见即所得的体验,并且我启用了在其中创建 URLs 的功能。
提交表单后,我在将数据保存到数据库之前使用此代码:
$description = htmlentities($_POST['description'], ENT_QUOTES, "UTF-8", false);
当我查看数据库时,我可以看到数据是这样保存的:
<a href="http://google.com"><em>Google</em></a></p>
对我来说这似乎是正确的并且编码没有问题?当然,除非我错了,我正在做我不应该做的事情。
现在,当我在网页中显示数据时,我得到了奇怪的结果。我在显示数据时采用了 2 种方法,每种方法都解决了一个问题,但又产生了一个新问题。为了说明,请看一下我的两种方法:
第一种方法
因为我在保存到数据库之前使用 ENT_QUOTES
对其进行了编码,所以使用相同的方法对其进行解码对我来说很有意义。
html_entity_decode($data['description'], ENT_QUOTES, "UTF-8");
我使用这种方法遇到的问题是带有重音符 (ñå
) 的字符无法正确显示。但这解决了我将 URL 附加到我的工作目录的问题。
第二种方法
html_entity_decode(utf8_decode($data['description']), ENT_XML1, "UTF-8");
这个解决了我关于重音字符的问题,但它破坏了 URLs,而不是正确打开它试图打开像 http://example.com/my/working/directory/%22http://google.com%22
.
这样的东西
请注意,我对字符编码的概念不是很熟悉,所以如果我在做不该做的事情,请不要苛刻。
我能够通过结合两种解决方案来解决问题:
html_entity_decode(utf8_decode($data['description']), ENT_QUOTES | ENT_XML1, "UTF-8");
我正在使用 CKEditor 来获得所见即所得的体验,并且我启用了在其中创建 URLs 的功能。
提交表单后,我在将数据保存到数据库之前使用此代码:
$description = htmlentities($_POST['description'], ENT_QUOTES, "UTF-8", false);
当我查看数据库时,我可以看到数据是这样保存的:
<a href="http://google.com"><em>Google</em></a></p>
对我来说这似乎是正确的并且编码没有问题?当然,除非我错了,我正在做我不应该做的事情。
现在,当我在网页中显示数据时,我得到了奇怪的结果。我在显示数据时采用了 2 种方法,每种方法都解决了一个问题,但又产生了一个新问题。为了说明,请看一下我的两种方法:
第一种方法
因为我在保存到数据库之前使用 ENT_QUOTES
对其进行了编码,所以使用相同的方法对其进行解码对我来说很有意义。
html_entity_decode($data['description'], ENT_QUOTES, "UTF-8");
我使用这种方法遇到的问题是带有重音符 (ñå
) 的字符无法正确显示。但这解决了我将 URL 附加到我的工作目录的问题。
第二种方法
html_entity_decode(utf8_decode($data['description']), ENT_XML1, "UTF-8");
这个解决了我关于重音字符的问题,但它破坏了 URLs,而不是正确打开它试图打开像 http://example.com/my/working/directory/%22http://google.com%22
.
请注意,我对字符编码的概念不是很熟悉,所以如果我在做不该做的事情,请不要苛刻。
我能够通过结合两种解决方案来解决问题:
html_entity_decode(utf8_decode($data['description']), ENT_QUOTES | ENT_XML1, "UTF-8");