all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH installer] country.pl: load iso 3166 country codes file as UTF8
@ 2025-04-08  8:47 Christoph Heiss
  2025-04-08  8:48 ` Maximiliano Sandoval
  2025-04-08  9:13 ` [pve-devel] Applied: " Thomas Lamprecht
  0 siblings, 2 replies; 3+ messages in thread
From: Christoph Heiss @ 2025-04-08  8:47 UTC (permalink / raw)
  To: pve-devel

This file is UTF-8 encoded and contains Unicode characters for encoding
country names, such as "Åland Islands" for example.

Otherwise, the final locale-info.json that gets shipped with the ISO
might contain wrongly-encoded country names, causing display errors in
(at least) the GTK installer country dropdown.

Reported-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
---
 country.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/country.pl b/country.pl
index 9e4881a..7401f68 100755
--- a/country.pl
+++ b/country.pl
@@ -88,7 +88,7 @@ my sub parse_zoneinfo {
 # country codes from:
 my $country_codes_file = "/usr/share/iso-codes/json/iso_3166-1.json";
 
-my $iso_3166_codes = from_json(PVE::Tools::file_get_contents($country_codes_file, 64 * 1024));
+my $iso_3166_codes = from_json(PVE::Tools::file_get_contents($country_codes_file, 64 * 1024), { utf8 => 1 });
 
 my $country_codes = { map { lc($_->{'alpha_2'}) => $_->{'common_name'} // $_->{'name'} } @{$iso_3166_codes->{'3166-1'}} };
 
-- 
2.48.1



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [pve-devel] [PATCH installer] country.pl: load iso 3166 country codes file as UTF8
  2025-04-08  8:47 [pve-devel] [PATCH installer] country.pl: load iso 3166 country codes file as UTF8 Christoph Heiss
@ 2025-04-08  8:48 ` Maximiliano Sandoval
  2025-04-08  9:13 ` [pve-devel] Applied: " Thomas Lamprecht
  1 sibling, 0 replies; 3+ messages in thread
From: Maximiliano Sandoval @ 2025-04-08  8:48 UTC (permalink / raw)
  To: Christoph Heiss; +Cc: pve-devel


I ran
```sh
make locale-info.json
<locale-info.json jq > locales.json
```
then did a diff of the locales.json file before and after this patch. The resulting diff is:

```diff
@@ -1001,7 +1001,7 @@
     "ax": {
       "kmap": "",
       "mirror": "",
-      "name": "Ã…land Islands",
+      "name": "Åland Islands",
       "zone": "Europe/Mariehamn"
     },
     "az": {
@@ -1067,7 +1067,7 @@
     "bl": {
       "kmap": "",
       "mirror": "",
-      "name": "Saint Barthélemy",
+      "name": "Saint Barthélemy",
       "zone": "America/St_Barthelemy"
     },
     "bm": {
@@ -1174,7 +1174,7 @@
     "ci": {
       "kmap": "",
       "mirror": "",
-      "name": "Côte d'Ivoire",
+      "name": "Côte d'Ivoire",
       "zone": "Africa/Abidjan"
     },
     "ck": {
@@ -1228,7 +1228,7 @@
     "cw": {
       "kmap": "",
       "mirror": "",
-      "name": "Curaçao",
+      "name": "Curaçao",
       "zone": "America/Curacao"
     },
     "cx": {
@@ -2037,7 +2037,7 @@
     "re": {
       "kmap": "",
       "mirror": "",
-      "name": "Réunion",
+      "name": "Réunion",
       "zone": "Indian/Reunion"
     },
     "ro": {
@@ -2259,7 +2259,7 @@
     "tr": {
       "kmap": "",
       "mirror": "ftp.tr.debian.org",
-      "name": "Türkiye",
+      "name": "Türkiye",
       "zone": "Europe/Istanbul"
     },
     "tt": {
@@ -2463,10 +2463,10 @@
     "costa rica": "cr",
     "croatia": "hr",
     "cuba": "cu",
-    "curaã§ao": "cw",
+    "curaçao": "cw",
     "cyprus": "cy",
     "czechia": "cz",
-    "cã´te d'ivoire": "ci",
+    "côte d'ivoire": "ci",
     "denmark": "dk",
     "djibouti": "dj",
     "dominica": "dm",
@@ -2590,8 +2590,8 @@
     "romania": "ro",
     "russian federation": "ru",
     "rwanda": "rw",
-    "rã©union": "re",
-    "saint barthã©lemy": "bl",
+    "réunion": "re",
+    "saint barthélemy": "bl",
     "saint helena, ascension and tristan da cunha": "sh",
     "saint kitts and nevis": "kn",
     "saint lucia": "lc",
@@ -2637,7 +2637,7 @@
     "turkmenistan": "tm",
     "turks and caicos islands": "tc",
     "tuvalu": "tv",
-    "tã¼rkiye": "tr",
+    "türkiye": "tr",
     "uganda": "ug",
     "ukraine": "ua",
     "united arab emirates": "ae",
@@ -2656,7 +2656,7 @@
     "yemen": "ye",
     "zambia": "zm",
     "zimbabwe": "zw",
-    "ã…land islands": "ax"
+    "åland islands": "ax"
   },
   "kmap": {
     "de": {
```

which seems correct to me.

Thanks for the patch!

Reviewed-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
Tested-by: Maximiliano Sandoval <m.sandoval@proxmox.com>

Christoph Heiss <c.heiss@proxmox.com> writes:

> This file is UTF-8 encoded and contains Unicode characters for encoding
> country names, such as "Åland Islands" for example.
>
> Otherwise, the final locale-info.json that gets shipped with the ISO
> might contain wrongly-encoded country names, causing display errors in
> (at least) the GTK installer country dropdown.
>
> Reported-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
> Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
> ---
>  country.pl | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/country.pl b/country.pl
> index 9e4881a..7401f68 100755
> --- a/country.pl
> +++ b/country.pl
> @@ -88,7 +88,7 @@ my sub parse_zoneinfo {
>  # country codes from:
>  my $country_codes_file = "/usr/share/iso-codes/json/iso_3166-1.json";
>  
> -my $iso_3166_codes = from_json(PVE::Tools::file_get_contents($country_codes_file, 64 * 1024));
> +my $iso_3166_codes = from_json(PVE::Tools::file_get_contents($country_codes_file, 64 * 1024), { utf8 => 1 });
>  
>  my $country_codes = { map { lc($_->{'alpha_2'}) => $_->{'common_name'} // $_->{'name'} } @{$iso_3166_codes->{'3166-1'}} };



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [pve-devel] Applied: [PATCH installer] country.pl: load iso 3166 country codes file as UTF8
  2025-04-08  8:47 [pve-devel] [PATCH installer] country.pl: load iso 3166 country codes file as UTF8 Christoph Heiss
  2025-04-08  8:48 ` Maximiliano Sandoval
@ 2025-04-08  9:13 ` Thomas Lamprecht
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Lamprecht @ 2025-04-08  9:13 UTC (permalink / raw)
  To: pve-devel, Christoph Heiss

On Tue, 08 Apr 2025 10:47:43 +0200, Christoph Heiss wrote:
> This file is UTF-8 encoded and contains Unicode characters for encoding
> country names, such as "Åland Islands" for example.
> 
> Otherwise, the final locale-info.json that gets shipped with the ISO
> might contain wrongly-encoded country names, causing display errors in
> (at least) the GTK installer country dropdown.
> 
> [...]

Exactly what I thought it would be when Maximiliano showed me the screenshot of
the broken encoding, hindsigth is 20/20 I guess.

Applied, thanks!

[1/1] country.pl: load iso 3166 country codes file as UTF8
      commit: 4b5db269ec8aae689329633a1ebe9546a19490b3


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-04-08  9:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-08  8:47 [pve-devel] [PATCH installer] country.pl: load iso 3166 country codes file as UTF8 Christoph Heiss
2025-04-08  8:48 ` Maximiliano Sandoval
2025-04-08  9:13 ` [pve-devel] Applied: " Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal