[#61822] Plan Developers Meeting Japan April 2014 — Zachary Scott <e@...>

I would like to request developers meeting around April 17 or 18 in this mo=

14 messages 2014/04/03
[#61825] Re: Plan Developers Meeting Japan April 2014 — Urabe Shyouhei <shyouhei@...> 2014/04/03

It's good if we have a meeting then.

[#61826] Re: Plan Developers Meeting Japan April 2014 — Zachary Scott <e@...> 2014/04/03

Regarding openssl issues, I=E2=80=99ve discussed possible meeting time with=

[#61833] Re: Plan Developers Meeting Japan April 2014 — Martin Bo煬et <martin.bosslet@...> 2014/04/03

Hi,

[ruby-core:62113] [ruby-trunk - Feature #9766] [Open] Add force_encoding option to csv

From: daisuketaniwaki@...
Date: 2014-04-21 07:37:28 UTC
List: ruby-core #62113
Issue #9766 has been reported by DAISUKE TANIWAKI.

----------------------------------------
Feature #9766: Add force_encoding option to csv
https://bugs.ruby-lang.org/issues/9766

* Author: DAISUKE TANIWAKI
* Status: Open
* Priority: Normal
* Assignee:=20
* Category: lib
* Target version: current: 2.2.0
----------------------------------------
Hi there,

I have a trouble when I use csv#generate with encoding 'Shift-JIS' option. =
I investigated it for a long time and found it is caused by compatibility w=
ithin "UTF-8" and "Shift-JIS". Since "Shift-JIS" can be converted to UTF-8,=
 a row with UTF-8 strings added to the csv instance makes the encoding of w=
hole rows UTF-8.

Take a look at the code below.
https://github.com/dtaniwaki/ruby/blob/trunk/lib/csv.rb#L1658

Here's the code example.

```rb
irb(main):002:0> s =3D generate(encoding: 'SJIS') do |csv|
    csv << ['=E3=81=82']
  end
=3D> ["=E3=81=82"]

irb(main):003:0> s
=3D> "=E3=81=82\n"

irb(main):004:0> s.encoding
=3D> #<Encoding:UTF-8>
```

I was intended to make SJIS encoded csv, but the result was UTF-8 csv. I th=
ink everyone think it should generate Shift-JIS encoded csv string, so coul=
d you consider to merge the change attached to this issue?

The expected result is here.

```rb
irb(main):002:0> s =3D generate(encoding: 'SJIS', force_encoding: true) do =
|csv|
    csv << ['=E3=81=82']
  end
=3D> ["=E3=81=82"]

irb(main):003:0> s
=3D> "\x{E381}\x82\n"

irb(main):004:0> s.encoding
=3D> #<Encoding:Windows-31J>
```


---Files--------------------------------
csv.rb.diff (1.41 KB)


--=20
https://bugs.ruby-lang.org/

In This Thread

Prev Next