【问题标题】:Drupal node_save and special charactersDrupal node_save 和特殊字符
【发布时间】:2010-03-12 03:04:16
【问题描述】:

我正在尝试使用 node_save() 函数通过自定义 php 脚本创建节点和分类术语。

我正在开发 drupal 6。

除了重音字母外,它运行良好(感谢之前关于 stackoverflow 的问题)。

确实,当标题或分类术语包含“é”、“è”或“à”时,句子会在这些特殊字符之前被剪切。

例如,像这样的标题:“Bonjour les éléphants”将创建一个以“Bonjour les”为标题的节点。

我不知道它是否链接到我的数据库,或者我是否必须在 php 中使用特殊编码 (iconv() blabla)

事实是,对于 drupal 标题,我不能使用 html 编码(例如:html 中的 é 是 é),因为 drupal 将呈现 &eacute 而不是 é...

当我手动创建分类或标题时,我没有问题,重音字母在数据库中保存为“é”。

如果你能帮我创建带有重音字母的术语和标题,那就太好了:)

谢谢!

【问题讨论】:

  • 你从哪里得到保存节点的数据?手动在文件中还是其他?

标签: php drupal drupal-6 taxonomy


【解决方案1】:

这种看起来像是某种编码/字符集问题...

使用 Drupal,所有内容都在UTF-8 charset 中编码(和预期)

不确定它是否能解决/修复您的问题,但您应该确保应用程序中的所有内容都使用/在 UTF-8 中工作:

  • 包含源代码的 PHP 文件应为 UTF-8
    • 您的 IDE/编辑器中可能有一些设置
    • 这将确保您硬编码的字符串也是 UTF-8 格式
  • 当使用一些外部数据时,在调用node_save之前,你必须确保它是UTF-8


我已经遇到过几次在重音字符之前剪切字符串的问题,并且每次都确保字符串是在 UTF-8 解决它时传递的——所以也许它也对你有用^^

【讨论】:

  • 是的!我将我的 php 文件提升为 utf-8,现在它运行良好,Merci Pascal; ) 谢谢。
  • 好消息! Pas de quoi :-) (法语为“不客气”)
【解决方案2】:

在 Eclipse 中,您可以将其更改如下:

Preferences > General > Workspaces,将“Text file encoding”设置为“Other : UTF-8”。

【讨论】:

    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 2015-07-10
    • 2012-09-24
    • 2011-05-17
    • 2016-12-08
    • 2011-05-03
    • 2019-09-05
    相关资源
    最近更新 更多