麻里子さまのおりこうさま!に投稿できなかった話
正確には、エラー原因を探って何とか投稿した話です。
経緯
麻里子さまのおりこうさま! とは、毎回 決められたテーマについて、
150字以内で解説するテレビ番組です。(現在 番組は終了。)
その時は「NPO」の解説を募集していました。
視聴者からの投稿を受け付けるwebの「フォーム」があり、
私もそのフォームから投稿しようとしました。
麻里子さまに「おりこうさま」されたくて、解説文を何度も書き直し、
文字数制限ギリギリの145字くらいにまとめました。
ハンドルネーム等の必要事項を入力し、いざ投稿ボタンを押しました。
エラー「150字以内にしてください」
おっかしいなぁ。たしかに150字以内に まとめてるんだけど。
調査
半角文字が まぎれているのか?
いや それはない。すべて全角文字だ。
じゃ、UTF-8 の3バイトや4バイト文字が入っているのか?
ありえない。Shift_JIS で普通に文章を書いているのだから。
しばし考えた後、ある仮説が浮かび上がる。
「改行文字をカウントしてる・・・?」
いや、それは なかろう。ふつう150字といったら印字可能な文字数だ。
改行文字など数えない。第一、NHKの投稿フォームだぞ。
こんなエラー出てたらクレームですぐ修正するだろう。
私は半信半疑で、改行だけを消して投稿してみました。
NPOとはかくかくしかじか。
だからNPOとはかくかくしかじか。
つまりNPOとはかくかくしかじかなのです。
↓このように修正
NPOとはかくかくしかじか。だからNPOとはかくかくしかじか。つまりNPOとはかくかくしかじかなのです。
あらためて投稿!
・・・正常に投稿されました。
やはり改行文字をカウントしていたようです。
(なんてこった )
改行を省いた文字数チェック?
上記のフォームはもう存在しませんが、
仮にPHPだったとすると、改行除去はこんな感じ。
preg_replace('/[\r\n]/','',$data)
ただ この方法の場合、ちょっと不安です。
文章に大量の改行が含まれていてもOKだからです。
:
(大量の改行)
(大量の改行)
(大量の改行)
あいうえお
(大量の改行)
(大量の改行)
(大量の改行)
:
文字数チェックの後、元々の文章をDB等に保存するはずなので、
改行だらけの文章が通ってしまいます。
別の方法を探る
システム側の都合ですが、150字というのを、
改行を含めたチェックにしたらどうでしょう?
注意書きに
150字(改行含む)
として、運用で逃げたほうが楽です。
テキスト入力が身近になった現代ならOKかも・・・
いや、やはりダメです。
PHPで試すと、改行1つを2文字でカウントしてしまいます。
( CR と LF で2文字。)
改行するたびに2文字も余計に加算されます。
さすがに これは文字数の無駄です。
せめて1文字でカウントされるなら運用で逃げるのに。
まとめ?
結局、テキストの文字数チェックは、
・改行を省いて文字数チェックする。
・必要なら、改行を含む全体のバイト数もチェックする。
というのが一応の解決策ですかねぇ・・・。
参考
Author And Source
この問題について(麻里子さまのおりこうさま!に投稿できなかった話), 我々は、より多くの情報をここで見つけました https://qiita.com/kyotoisalsosnownight/items/1d87bf1be16b0a93c998著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .