support optimized case on chars