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 задан и положителен, возвращаемое
       значение содержит не более length символов,
       начиная с offset (зависит от длины строки
       string).
      
       Если указан отрицательный length,
       iconv_substr() получает часть строки
       string, начиная с offset
       символа и до символа, отстоящего от конца строки на
       length символов.
       В случае, если offset также отрицателен,
       стартовая позиция вычисляется заранее в соответствии с
       вышеописанным правилом.
      
encoding
       Если параметр encoding не указан,
       предполагается, что строка string
       имеет кодировку
       iconv.internal_encoding.
      
       Обратите внимание, что и offset,
       и length основываются на размере символа,
       рассчитанного исходя из кодировки текста (encoding),
       в то время как схожая функция substr()
       всегда рассматривает их побайтовое смещение.
      
   Возвращает часть строки string, определённую
   параметрами offset и length.
  
   Если строка string имеет меньшую длину, чем
   параметр offset, будет возвращено
   false.
   Если string имеет длину равную offset,
   будет возвращена пустая строка.
  
| Версия | Описание | 
|---|---|
| 8.0.0 | lengthиencodingтеперь допускают значение null. | 
| 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