[ruby-core:117467] [Ruby master Bug#20412] UTF-8 String encoding behavior differs between 3.2, 3.3 and master
From:
"bannable (Joe Truba) via ruby-core" <ruby-core@...>
Date:
2024-04-09 01:16:59 UTC
List:
ruby-core #117467
SXNzdWUgIzIwNDEyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgYmFubmFibGUgKEpvZSBUcnViYSkuDQoN Cg0KQGV0aQ0KDQpldGllbm5lICjDiXRpZW5uZSBCYXJyacOpKSB3cm90ZSBpbiAjbm90ZS0zOg0K PiBIZXksDQo+IA0KPiBJIGNhbm5vdCByZXByb2R1Y2UgdXNpbmcgdGhlIHJ1Ynk6My4yLjMgZG9j a2VyIGltYWdlIGFuZCB3aXRoIG15IGxvY2FsIGluc3RhbGxhdGlvbiBvZiBSdWJ5IDMuMi4zIGFu ZCAzLjIuMi4NCj4gDQo+IEluIGFsbCB0aGVzZSBjYXNlcywgSSBnZXQgIk9LIiAiaXMgbm90IHZh bGlkIFVURi04Ii4gSSBqdXN0IGNoYW5nZWQgdGhlIHNjcmlwdCB0byBhbHdheXMgdXNlIHNpemUg MSBhbmQgYnVuZGxlci9pbmxpbmU6DQo+IA0KDQpUaGUgaW5wdXQgc2l6ZSBpc24ndCBzZXQgY29y cmVjdGx5IGFmdGVyIHlvdXIgY2hhbmdlIHRvIHRoZSBzY3JpcHQ6DQoNCmBgYA0K4p6cICB+IEFT REZfUlVCWV9WRVJTSU9OPTMuMi4zIHJ1YnkgcmVwcm8uZXRpLnJiIDENCiJSVUJZOiAzLjIuMyIN CiJPSzogY2lwaGVydGV4dF9yYm5hY2wgaXMgbm90IHZhbGlkIFVURi04Ig0KIk9LOiBjaXBoZXJ0 ZXh0X2xvY2FsIGlzIG5vdCB2YWxpZCBVVEYtOCINCiJPSzogcGxhaW50ZXh0X3JibmFjbCBpcyBu b3QgdmFsaWQgVVRGLTgiDQoiT0s6IHBsYWludGV4dF9sb2NhbCBpcyBub3QgdmFsaWQgVVRGLTgi DQrinpwgIH4gQVNERl9SVUJZX1ZFUlNJT049My4yLjMgcnVieSByZXByby5yYg0KIlJVQlk6IDMu Mi4zIg0KIk9LOiBjaXBoZXJ0ZXh0X3JibmFjbCBpcyBub3QgdmFsaWQgVVRGLTgiDQoiRkFJTDog Y2lwaGVydGV4dF9sb2NhbCBpcyBub3QgdmFsaWQgVVRGLTggYW5kIGRpZCBub3QgZXJyb3IgZHVy aW5nIGVuY29kaW5nIHRvIFVURi04Ig0KIk9LOiBwbGFpbnRleHRfcmJuYWNsIGlzIG5vdCB2YWxp ZCBVVEYtOCINCiJGQUlMOiBwbGFpbnRleHRfbG9jYWwgaXMgbm90IHZhbGlkIFVURi04IGFuZCBk aWQgbm90IGVycm9yIGR1cmluZyBlbmNvZGluZyB0byBVVEYtOCINCuKenCAgfiBkaWZmIHJlcHJv LmV0aS5yYiByZXByby5yYg0KNDQsNDZjNDQNCjwgU0laRSA9IEFSR1ZbMF0udG9faSB8fCAzMg0K PA0KPCBpbnB1dCA9ICgiXHhDMCIgKiBTSVpFKSArICcgJw0KLS0tDQo+IGlucHV0ID0gIlx4QzAi DQrinpwgIH4NCmBgYA0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQpCdWcgIzIwNDEyOiBVVEYtOCBTdHJpbmcgZW5jb2RpbmcgYmVoYXZpb3IgZGlmZmVycyBiZXR3 ZWVuIDMuMiwgMy4zIGFuZCBtYXN0ZXINCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vl cy8yMDQxMiNjaGFuZ2UtMTA3ODU2DQoNCiogQXV0aG9yOiBiYW5uYWJsZSAoSm9lIFRydWJhKQ0K KiBTdGF0dXM6IE9wZW4NCiogQmFja3BvcnQ6IDMuMDogVU5LTk9XTiwgMy4xOiBVTktOT1dOLCAz LjI6IFVOS05PV04sIDMuMzogVU5LTk9XTg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KV2hlbiBhIFN0cmluZyB0aGF0IGNvbnRhaW5zIG9ubHkgYSBgXDBgIGJ5dGUg aXMgbXV0YXRlZCBieSBhbiBleHRlbnNpb24gdG8gYW4gaW52YWxpZCBVVEYtOCBzZXF1ZW5jZSwg Y2FsbGluZyBgLmVuY29kZSgnVVRGLTgnKWAgZG9lcyBub3QgY29uc2lzdGVudGx5IHJhaXNlIGBV bmRlZmluZWRDb252ZXJzaW9uRXJyb3JgIGFjcm9zcyBydWJ5IHZlcnNpb25zLiBXaGVuIHRoZSBz dHJpbmcgaXMgbG9uZ2VyIHRoYW4gMSBieXRlLCBhbGwgdmVyc2lvbnMgSSd2ZSB0ZXN0ZWQgY29y cmVjdGx5IHJhaXNlIGBVbmRlZmluZWRDb252ZXJzaW9uRXJyb3JgLg0KDQpGb3IgUnVieSAzLjIs IGBVbmRlZmluZWRDb252ZXJzaW9uRXJyb3JgIGJlaW5nIHJhaXNlZCBhcHBlYXJzIHRvIGRlcGVu ZCBvbiB3aGVyZSB0aGUgc3RyaW5nIHdhcyBvcmlnaW5hbGx5IGFsbG9jYXRlZC4NCg0KRm9yIFJ1 YnkgMy4zLCBgVW5kZWZpbmVkQ29udmVyc2lvbkVycm9yYCBpcyBuZXZlciByYWlzZWQuDQoNCkZv ciBtYXN0ZXIgYWQ5MGZkZDI0YywgYFVuZGVmaW5lZENvbnZlcnNpb25FcnJvcmAgaXMgYWx3YXlz IGNvcnJlY3RseSByYWlzZWQuDQoNCkkgaGF2ZW4ndCBiZWVuIGFibGUgdG8gZmluZCBhIGJ1ZyBm b3IgdGhpcywgYnV0IGl0IHNlZW1zIGxpa2UgdGhlcmUgaXMgYSBmaXggaW4gbWFzdGVyIHRoYXQg c2hvdWxkIGJlIGJhY2twb3J0ZWQgdG8gYXQgbGVhc3QgMy4yIGFuZCAzLjMuDQoNCkkgaGF2ZSBu b3QgdGVzdGVkIDMuMS4NCg0KVGhlIGF0dGFjaGVkIHJlcHJvZHVjZXIgZGVwZW5kcyBvbiBgcmJu YWNsYCBiZWNhdXNlIGl0IGlzIG1pbmltaXplZCBmcm9tIGEgY3J5cHRvZ3JhcGhpYyBwcm9qZWN0 LCBhbmQgSSB3YXNuJ3QgYWJsZSB0byByZWR1Y2UgaXQgZnVydGhlci4NCg0KIyMgRXhwZWN0ZWQg T3V0cHV0DQoNCkZvciBhbGwgdmVyc2lvbnM6DQpgYGANCiQgcnVieSByZXByby5yYiAxDQoiUlVC WTogW3ZlcnNpb25dIg0KIk9LOiBjaXBoZXJ0ZXh0X3JibmFjbCBpcyBub3QgdmFsaWQgVVRGLTgi DQoiT0s6IGNpcGhlcnRleHRfbG9jYWwgaXMgbm90IHZhbGlkIFVURi04Ig0KIk9LOiBwbGFpbnRl eHRfcmJuYWNsIGlzIG5vdCB2YWxpZCBVVEYtOCINCiJPSzogcGxhaW50ZXh0X2xvY2FsIGlzIG5v dCB2YWxpZCBVVEYtOCINCg0KJCBydWJ5IHJlcHJvLnJiIDINCiJSVUJZOiBbdmVyc2lvbl0iDQoi T0s6IGNpcGhlcnRleHRfcmJuYWNsIGlzIG5vdCB2YWxpZCBVVEYtOCINCiJPSzogY2lwaGVydGV4 dF9sb2NhbCBpcyBub3QgdmFsaWQgVVRGLTgiDQoiT0s6IHBsYWludGV4dF9yYm5hY2wgaXMgbm90 IHZhbGlkIFVURi04Ig0KIk9LOiBwbGFpbnRleHRfbG9jYWwgaXMgbm90IHZhbGlkIFVURi04Ig0K YGBgDQoNCiMjIEFjdHVhbCBPdXRwdXQNCg0KIyMjIFJ1YnkgMy4yDQpgYGANCiQgQVNERl9SVUJZ X1ZFUlNJT049My4yLjMgcnVieSAtdjsgQVNERl9SVUJZX1ZFUlNJT049My4yLjMgcnVieSByZXBy by5yYiAxDQpydWJ5IDMuMi4zICgyMDI0LTAxLTE4IHJldmlzaW9uIDUyYmIyYWMwYTYpIFt4ODZf NjQtbGludXhdDQoiUlVCWTogMy4yLjMiDQoiT0s6IGNpcGhlcnRleHRfcmJuYWNsIGlzIG5vdCB2 YWxpZCBVVEYtOCINCiJGQUlMOiBjaXBoZXJ0ZXh0X2xvY2FsIGlzIG5vdCB2YWxpZCBVVEYtOCBh bmQgZGlkIG5vdCBlcnJvciBkdXJpbmcgZW5jb2RpbmcgdG8gVVRGLTgiDQoiT0s6IHBsYWludGV4 dF9yYm5hY2wgaXMgbm90IHZhbGlkIFVURi04Ig0KIkZBSUw6IHBsYWludGV4dF9sb2NhbCBpcyBu b3QgdmFsaWQgVVRGLTggYW5kIGRpZCBub3QgZXJyb3IgZHVyaW5nIGVuY29kaW5nIHRvIFVURi04 Ig0KDQokIEFTREZfUlVCWV9WRVJTSU9OPTMuMi4zIHJ1YnkgLXY7IEFTREZfUlVCWV9WRVJTSU9O PTMuMi4zIHJ1YnkgcmVwcm8ucmIgMg0KcnVieSAzLjIuMyAoMjAyNC0wMS0xOCByZXZpc2lvbiA1 MmJiMmFjMGE2KSBbeDg2XzY0LWxpbnV4XQ0KIlJVQlk6IDMuMi4zIg0KIk9LOiBjaXBoZXJ0ZXh0 X3JibmFjbCBpcyBub3QgdmFsaWQgVVRGLTgiDQoiT0s6IGNpcGhlcnRleHRfbG9jYWwgaXMgbm90 IHZhbGlkIFVURi04Ig0KIk9LOiBwbGFpbnRleHRfcmJuYWNsIGlzIG5vdCB2YWxpZCBVVEYtOCIN CiJPSzogcGxhaW50ZXh0X2xvY2FsIGlzIG5vdCB2YWxpZCBVVEYtOCINCmBgYA0KDQojIyMgUnVi eSAzLjMNCmBgYA0KJCBBU0RGX1JVQllfVkVSU0lPTj0zLjMuMCBydWJ5IC12OyBBU0RGX1JVQllf VkVSU0lPTj0zLjMuMCBydWJ5IHJlcHJvLnJiIDENCnJ1YnkgMy4zLjAgKDIwMjMtMTItMjUgcmV2 aXNpb24gNTEyNGY5YWM3NSkgW3g4Nl82NC1saW51eF0NCiJSVUJZOiAzLjMuMCINCiJGQUlMOiBj aXBoZXJ0ZXh0X3JibmFjbCBpcyBub3QgdmFsaWQgVVRGLTggYW5kIGRpZCBub3QgZXJyb3IgZHVy aW5nIGVuY29kaW5nIHRvIFVURi04Ig0KIkZBSUw6IGNpcGhlcnRleHRfbG9jYWwgaXMgbm90IHZh bGlkIFVURi04IGFuZCBkaWQgbm90IGVycm9yIGR1cmluZyBlbmNvZGluZyB0byBVVEYtOCINCiJG QUlMOiBwbGFpbnRleHRfcmJuYWNsIGlzIG5vdCB2YWxpZCBVVEYtOCBhbmQgZGlkIG5vdCBlcnJv ciBkdXJpbmcgZW5jb2RpbmcgdG8gVVRGLTgiDQoiRkFJTDogcGxhaW50ZXh0X2xvY2FsIGlzIG5v dCB2YWxpZCBVVEYtOCBhbmQgZGlkIG5vdCBlcnJvciBkdXJpbmcgZW5jb2RpbmcgdG8gVVRGLTgi DQoNCiQgQVNERl9SVUJZX1ZFUlNJT049My4zLjAgcnVieSAtdjsgQVNERl9SVUJZX1ZFUlNJT049 My4zLjAgcnVieSByZXByby5yYiAyDQpydWJ5IDMuMy4wICgyMDIzLTEyLTI1IHJldmlzaW9uIDUx MjRmOWFjNzUpIFt4ODZfNjQtbGludXhdDQoiUlVCWTogMy4zLjAiDQoiT0s6IGNpcGhlcnRleHRf cmJuYWNsIGlzIG5vdCB2YWxpZCBVVEYtOCINCiJPSzogY2lwaGVydGV4dF9sb2NhbCBpcyBub3Qg dmFsaWQgVVRGLTgiDQoiT0s6IHBsYWludGV4dF9yYm5hY2wgaXMgbm90IHZhbGlkIFVURi04Ig0K Ik9LOiBwbGFpbnRleHRfbG9jYWwgaXMgbm90IHZhbGlkIFVURi04Ig0KYGBgDQoNCiMjIyBSdWJ5 IE1hc3Rlcg0KYGBgDQokIEFTREZfUlVCWV9WRVJTSU9OPXJ1YnktZGV2IHJ1YnkgLXY7IEFTREZf UlVCWV9WRVJTSU9OPXJ1YnktZGV2IHJ1YnkgcmVwcm8ucmIgMQ0KcnVieSAzLjQuMGRldiAoMjAy NC0wNC0wNlQxNzozMzoxNlogbWFzdGVyIGFkOTBmZGQyNGMpIFt4ODZfNjQtbGludXhdDQoiUlVC WTogMy40LjAiDQoiT0s6IGNpcGhlcnRleHRfcmJuYWNsIGlzIG5vdCB2YWxpZCBVVEYtOCINCiJP SzogY2lwaGVydGV4dF9sb2NhbCBpcyBub3QgdmFsaWQgVVRGLTgiDQoiT0s6IHBsYWludGV4dF9y Ym5hY2wgaXMgbm90IHZhbGlkIFVURi04Ig0KIk9LOiBwbGFpbnRleHRfbG9jYWwgaXMgbm90IHZh bGlkIFVURi04Ig0KDQokIEFTREZfUlVCWV9WRVJTSU9OPXJ1YnktZGV2IHJ1YnkgLXY7IEFTREZf UlVCWV9WRVJTSU9OPXJ1YnktZGV2IHJ1YnkgcmVwcm8ucmIgMg0KcnVieSAzLjQuMGRldiAoMjAy NC0wNC0wNlQxNzozMzoxNlogbWFzdGVyIGFkOTBmZGQyNGMpIFt4ODZfNjQtbGludXhdDQoiUlVC WTogMy40LjAiDQoiT0s6IGNpcGhlcnRleHRfcmJuYWNsIGlzIG5vdCB2YWxpZCBVVEYtOCINCiJP SzogY2lwaGVydGV4dF9sb2NhbCBpcyBub3QgdmFsaWQgVVRGLTgiDQoiT0s6IHBsYWludGV4dF9y Ym5hY2wgaXMgbm90IHZhbGlkIFVURi04Ig0KIk9LOiBwbGFpbnRleHRfbG9jYWwgaXMgbm90IHZh bGlkIFVURi04Ig0KYGBgDQoNCi0tLUZpbGVzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCnJlcHJvLnJiICgyLjMxIEtCKQ0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5v cmcvDQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVi eS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5z dWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9y ZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL3Bv c3Rvcml1cy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=