1

node_save() 関数を使用してカスタム php スクリプトを介してノードと分類用語を作成しようとしています。

私はdrupal 6に取り組んでいます。

アクセント付きの文字を除いて、うまく機能しています(stackoverflowに関する以前の質問のおかげです)。

実際、タイトルまたは分類用語に「é」、「è」、または「à」が含まれている場合、文はそれらの特殊文字の前でカットされます。

たとえば、「Bonjour les éléphants」のようなタイトルは、「Bonjour les」というタイトルのノードを作成します。

それが自分のデータベースにリンクされているのか、それとも PHP で特別なエンコーディングを使用する必要があるのか​​ (iconv() blabla) はわかりません。

実際のところ、drupal タイトルの場合、html エンコーディングを使用できません (例: é は html では é です)。drupal は é ではなく é をレンダリングするためです。

タクソノミまたはタイトルを手動で作成すると、問題はなく、アクセント付きの文字は「é」としてデータベースに保存されます。

アクセント付きの文字で用語とタイトルを作成するのを手伝ってくれたら、それは素晴らしいことです:)

ありがとうございました !

4

2 に答える 2

2

この種のエンコーディング/文字セットの問題のように見えます...

Drupalを使用すると、すべてがUTF-8文字セットでエンコード(および期待)されます。

問題が解決/修正されるかどうかはわかりませんが、アプリケーション内のすべてがUTF-8で/UTF-8で動作していることを確認する必要があります。

  • ソースコードを含むPHPファイルはUTF-8である必要があります
    • あなたのIDE/エディタにはおそらくそれについていくつかの設定があります
    • これにより、ハードコーディングした文字列もUTF-8に含まれるようになります
  • 外部データを使用する場合は、呼び出す前にnode_save、UTF-8にあることを確認する必要があります
    • utf8_encode関数は役立つかもしれません
    • mb_convert_encodingまたは、入力データで使用される文字セットに応じて、多分。


アクセント付き文字の前に文字列がカットされるという問題に何度か遭遇しました。そのたびに、UTF-8で解決されたとおりに文字列が渡されたことを確認します。これで、うまくいくかもしれません^^

于 2010-03-12T05:46:56.277 に答える