# Downcase/uppercase for non-English characters

**URL:** <https://www.ruby-forum.com/t/downcase-uppercase-for-non-english-characters/83721>\
**Category:** Ruby\
**Created:** [March 18, 2006, 10:34pm UTC](https://www.ruby-forum.com/t/downcase-uppercase-for-non-english-characters/83721 "2006-03-18T22:34:14Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![victor123789](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/f0a364/32.png) [@victor123789](https://www.ruby-forum.com/u/victor123789)\
**Post date:** [March 18, 2006, 10:34pm UTC](https://www.ruby-forum.com/t/downcase-uppercase-for-non-english-characters/83721/1 "2006-03-18T22:34:14Z")

</div>

Hello.

Can subj be done for 1-byte (non-Unicode) encodings, particularly  
windows-1251 (Russian).

Are there some interpretor options or third-party libraries for  
locale-specific operations?

Thanks.

Victor.

---

<div class="post-metadata">

**Author:** ![victor123789](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/f0a364/32.png) [@victor123789](https://www.ruby-forum.com/u/victor123789)\
**Post date:** [March 19, 2006, 1:35am UTC](https://www.ruby-forum.com/t/downcase-uppercase-for-non-english-characters/83721/2 "2006-03-19T01:35:28Z")

</div>

Hi

As Turkish users we have same problems not only in windows-1254 also  
utf-8 and i think as a japanese user Matz have same problems also. I  
read a solution in a turkish forum may be u can use it. They says for  
unicode use jcode=u and write your own regex for downcase/uppercase  
functions. So if yu do that inthe ruby code all libraries which use  
that function will use your function. But this problem will be fixed in  
2.0 version of Ruby.

Serbulent UNSAL

---

<div class="post-metadata">

**Author:** ![victor123789](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/f0a364/32.png) [@victor123789](https://www.ruby-forum.com/u/victor123789)\
**Post date:** [March 19, 2006, 1:35am UTC](https://www.ruby-forum.com/t/downcase-uppercase-for-non-english-characters/83721/3 "2006-03-19T01:35:28Z")

</div>

> As Turkish users we have same problems not only in windows-1254 also  
> utf-8 and i think as a japanese user Matz have same problems also.

Hmmm… It seems to me Japanese has no upper/downcases.

> I  
> read a solution in a turkish forum may be u can use it. They says for  
> unicode use jcode=u and write your own regex for downcase/uppercase  
> functions. So if yu do that inthe ruby code all libraries which use  
> that function will use your function.

Yes, I know how to use Unicode (but I don’t want), and know how to write  
custom upper/downcase via String.tr (and I’ve already wrote). What I  
can’t  
handle, is case-insensitive Regexp-matching :-\

> But this problem will be fixed in  
> 2.0 version of Ruby.

Would hope, but can’t wait 🙂

In any case, thanks for your help.

> Serbulent UNSAL

Victor.

---

<div class="post-metadata">

**Author:** ![victor123789](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/f0a364/32.png) [@victor123789](https://www.ruby-forum.com/u/victor123789)\
**Post date:** [March 28, 2006, 9:47pm UTC](https://www.ruby-forum.com/t/downcase-uppercase-for-non-english-characters/83721/4 "2006-03-28T21:47:46Z")

</div>

- Victor S. (removed\_email\_address@domain.invalid) wrote:

> Hello.
> 
> Can subj be done for 1-byte (non-Unicode) encodings, particularly  
> windows-1251 (Russian).
> 
> Are there some interpretor options or third-party libraries for  
> locale-specific operations?

The Unicode property support that can be compiled in to PCRE. I know  
There are PCRE bindings for Ruby as well, although I have no idea how  
functional they are.

Obviously in order for this to work, you’d need to use Iconv to  
convert the data into PCRE-friendly UTF-8.
