- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2020-07-20T22:57:28+09:00","","")
#author("2022-01-10T18:31:11+09:00","","")
* 編集しようとすると本文が空になることがある [#t6675dda]
- ページ: [[BugTrack]]
- 投稿者: [[umorigu]]
- 優先順位: 低
- 状態: 提案
- カテゴリー: 本体バグ
- 投稿日: 2021-12-17 (金) 8:36:07
- バージョン: 1.5.3
** メッセージ [#lded8abe]
ここだけかもしれませんが、たまに発生しています。
--------
- 自分も以前にあったのですが、本体がUTF-8でページがEUC-JPでエンコードされている場合、空になってしまいますね -- [[はいふん]] &new{2021-12-17 (金) 15:48:53};
function get_source($page = NULL, $lock = TRUE, $join = FALSE, $raw = FALSE)
{
(...)
if ($join) {
// Returns a value
$size = filesize($path);
if ($size === FALSE) {
$result = FALSE;
} else if ($size == 0) {
$result = '';
} else {
$result = fread($fp, $size);
if ($result !== FALSE) {
$encoding = mb_detect_encoding($result, ['UTF-8', 'EUC-JP'], true);
if ($encoding != "UTF-8")
$result = mb_convert_encoding($result, 'UTF-8', $encoding);
if ($raw) {
return $result;
}
// Removing Carriage-Return
$result = str_replace("\r", '', $result);
}
}
} else {
// Returns an array
$result = file($path);
if ($result !== FALSE) {
$encoding = mb_detect_encoding(implode("\n", $result), ['UTF-8', 'EUC-JP'], true);
if ($encoding != "UTF-8") {
foreach($result as $line) {
$result_tmp[] = mb_convert_encoding($line, 'UTF-8', $encoding);
}
$result = $result_tmp;
unset($result_tmp);
}
// Removing Carriage-Return
$result = str_replace("\r", '', $result);
}
}
(...)
}
- ページのエンコーディングがEUC-JPでPukiWiki本体がUTF-8といった際でも正常に読み込めるようにget_source()内に変換するコードを試しにつくってみました。implodeを利用している等ちょっと処理が増加しそうな感じがあります -- [[はいふん]] &new{2021-12-17 (金) 23:16:54};
- 逆のパターンも検証してみたんですが、ページがUTF-8で本体がEUC-JPの場合も編集で空になってしまうようです -- [[はいふん]] &new{2021-12-17 (金) 23:27:31};
-- すみません。説明不足でした。このサイトで発生していることでしたので、文字コードがおかしいわけではないと思っています。数秒時間をおいてリロードすると本文が入ってきました。OSDNのプロジェクトWebサーバーのストレージはNFSなので、その辺に何かあるのかもしれません -- [[umorigu]] &new{2022-01-10 (月) 18:31:11};
#comment