シリアライズされたデータにはの他に長さ(byte)の情報が含まれています。

a:1:{i:0;s:24:"あしたは晴れです";}

a配列で、続く数値は要素の数を表しています。
iInteger型で、続く数値は byte ではなくです。この場合、配列のキーにあたります。
sString型で、続く数値は byte です。この場合、配列の値にあたります。
この文字列をアンシリアライズすると、

array(1) {
  [0]=>
  string(24) "あしたは晴れです"
}

このようになります。

ここからが本題!

あしたは晴れですあしたは雨ですに置き換えたとします。

a:1:{i:0;s:24:"あしたは雨です";}

マルチバイトはほとんど 3 bytes / 1文字なので、1文字減って 21 bytes に変わりましたが、長さを示す数値は 24 bytes のままです。
これをアンシリアライズすると、

Notice: unserialize(): Error at offset 39 of 39 bytes in YOUR DIR on line **
bool(false)

そらみたことか。false(偽)が返され、Notice(注意)が出てしまいました。
そうです、byte も正しい数値に変えないとならないのです。
WordPress を使っている場合、これは大きな問題になることがあります。
プラグインの中にはシリアライズされたデータを扱うものが数多く存在するので、安易に置き換えを行うと不具合が発生してしまいます。
WordPress で一括置換を行う場合はプラグインを利用すべきです。

おすすめプラグイン ――― Better Search Replace

なぜか Search Replace DB を推す記事が多くみられますが、WordPress の公式ディレクトリのものではないので個人的には不安です。

WordPress をご利用の方は Better Search Replace で対処するとして、手元にある SQL に対して一括置換を行いたいときのために・・・

一括置換ツール開発しました!

GitHub:https://github.com/YuyaHoshino/SearchAndReplaceSerializedString
ダウンロード:https://github.com/YuyaHoshino/SearchAndReplaceSerializedString/archive/master.zip
使い方:Search And Replace Serialized String