You should add unicode flag to pregmatch in _insert function:
if ( ! preg_match("/^[".$this->product_id_rules."]+$/iu", $items['id']))
and
if ( ! preg_match("/^[".$this->product_name_rules."]+$/iu", $items['name']))
There is good article about this issue: http://wwarlock.blogspot.ru/2010/03/codeigniter.html