just fyi, iconv_substr() unknown error (0) has been resolved in PHP 5.2
you can also try mb_substr() or just substr() when dealing with this issue. Unfortunately there is no way to fix it in versions prior to 5.2.
Regards,
Teodor Sandu(PHP 5, PHP 7, PHP 8)
iconv_substr — 文字列の一部を切り出す
$string,$offset,$length = null,$encoding = null
   文字列 string の、
   offset と length
   で指定された一部を返します。
  
string元の文字列。
offset
       offset が負でない場合、
       iconv_substr() は
       string の offset
       番目の文字(ゼロから数えて)から切り出します。
      
       offset が負の場合、
       iconv_substr() は
       string の最後から数えて
       offset 番目の文字から切り出します。
      
length
       length が指定され、かつ正である場合、
       返される文字列は offset
       から数えて最大 length 文字数分となります
       (string の長さに依存します)。
      
       もし負の length が渡された場合に
       iconv_substr() が切り出す文字列は、
       string の offset
       番目の文字からはじまり、文字列の最後から数えて
       length 文字分戻ったところまでとなります。
       offset も負の場合、開始位置は
       上で説明した方式で計算されます。
      
encoding
       encoding が指定されなかった場合、もしくは null の場合、文字セットは
       ini 設定 iconv.internal_encoding
       で定義された値とみなされます。
      
       offset や length
       のパラメータは、常に charset で定義された
       文字セットにおける文字数と判断されることに注意してください。
       一方、substr() の場合はこれらの値を常に
       バイト数として判断します。
      
   文字列 string の、
   offset と length
   で指定された一部を返します。
  
   もし string が offset
   の文字列長より短い場合は、false が返されます。
   string が 
   offset の文字数に等しい場合、
   空文字列が返されます。
  
| バージョン | 説明 | 
|---|---|
| 8.0.0 | lengthとencodingは、nullable になりました。 | 
| 7.0.11 | stringがoffsetの文字数に等しい場合、
        空文字列が返されます。
        これより前のバージョンでは、この場合falseが返されていました。 | 
just fyi, iconv_substr() unknown error (0) has been resolved in PHP 5.2
you can also try mb_substr() or just substr() when dealing with this issue. Unfortunately there is no way to fix it in versions prior to 5.2.
Regards,
Teodor Sandu