merge revision(s) 40462: [Backport #8323]

	* io.c (rb_io_ext_int_to_encs, parse_mode_enc): bom-prefixed name is
	  not a real encoding name, just a fallback.  so the proper conversion
	  should take place even if if the internal encoding is equal to the
	  bom-prefixed name, unless actual encoding is equal to the internal
	  encoding.  [ruby-core:54563] [Bug #8323]

	* io.c (io_set_encoding_by_bom): reset extenal encoding if no BOM
	  found.  [ruby-core:54569]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@40541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e