# Gsub not working to replace a 'Chinese' Charater

**URL:** <https://www.ruby-forum.com/t/gsub-not-working-to-replace-a-chinese-charater/182473>\
**Category:** Rails I18n\
**Created:** [January 28, 2010, 5:59pm UTC](https://www.ruby-forum.com/t/gsub-not-working-to-replace-a-chinese-charater/182473 "2010-01-28T17:59:48Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![dissolved](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/b3f665/32.png) [@dissolved](https://www.ruby-forum.com/u/dissolved)\
**Post date:** [January 28, 2010, 5:59pm UTC](https://www.ruby-forum.com/t/gsub-not-working-to-replace-a-chinese-charater/182473/1 "2010-01-28T17:59:48Z")

</div>

gsub not works for me when replace ‘DBCS’(double byte character set)  
character, using last version ruby 1.8.6

when “stræ±‰å­—end”.gsub(/æ±‰å­—/,“hanzi”),  
output still is: stræ±‰å­—end , but not strhanziend which I want to get.

Searched web two whole night with no clue found.

Anyone can help are much appreciated, need got it work very urgent.  
thank you!

---

<div class="post-metadata">

**Author:** ![dissolved](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/b3f665/32.png) [@dissolved](https://www.ruby-forum.com/u/dissolved)\
**Post date:** [January 29, 2010, 1:16am UTC](https://www.ruby-forum.com/t/gsub-not-working-to-replace-a-chinese-charater/182473/2 "2010-01-29T01:16:48Z")

</div>

2010/1/28 Ryan S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> gsub not works for me when replace ‘DBCS’(double byte character set)  
> character, using last version ruby 1.8.6
> 
> when “strºº×Öend”.gsub(/ºº×Ö/,“hanzi”),  
> output still is: strºº×Öend , but not strhanziend which I want to get.
> 
> Searched web two whole night with no clue found.
> 
> Anyone can help are much appreciated, need got it work very urgent.  
> thank you!

Works for me with ruby 1.8.7 (2008-08-11 patchlevel 72)  
[universal-darwin10.0]  
and ruby 1.8.6 (2007-09-24 patchlevel 111) [x86\_64-linux]:

```
puts "strºº×Öend".gsub(/ºº×Ö/,"hanzi")

```

outputs

```
strhanziend

```

---

<div class="post-metadata">

**Author:** ![dissolved](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/b3f665/32.png) [@dissolved](https://www.ruby-forum.com/u/dissolved)\
**Post date:** [January 29, 2010, 6:13am UTC](https://www.ruby-forum.com/t/gsub-not-working-to-replace-a-chinese-charater/182473/3 "2010-01-29T06:13:02Z")

</div>

I found my mistake is using incorrect reg match, it works after change  
to

s=s.gsub(/#{cnarray[i]}/, x.to\_s)

thanks veryone!

---

<div class="post-metadata">

**Author:** ![dissolved](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/b3f665/32.png) [@dissolved](https://www.ruby-forum.com/u/dissolved)\
**Post date:** [January 29, 2010, 5:03pm UTC](https://www.ruby-forum.com/t/gsub-not-working-to-replace-a-chinese-charater/182473/4 "2010-01-29T17:03:18Z")

</div>

On 28 jan 2010, at 17:59, Ryan S. wrote:

> Anyone can help are much appreciated, need got it work very urgent.  
> thank you!

bigbuk:~ julik$ cat hanzi.rb  
$KCODE = “u”  
puts “strºº×Öend”.gsub(/ºº×Ö/,“hanzi”)

bigbuk:~ julik$ ruby hanzi.rb  
strhanziend

## I think you have some normalization problem which disappeared as soon as you pasted your CJK into the email

Julik Tarkhanov  
removed\_email\_address@domain.invalid
