[PECL-CVS] [pecl-file_formats-yaml] fix-unicode-emit: fixes #84

[email protected] (Rasmus Lerdorf) Sun, 5 Apr 2026 14:24:05 +0000
Newsgroups php.pecl.cvs
Message-ID <[email protected]>
Author: Rasmus Lerdorf (rlerdorf)
Date: 2026-04-05T10:23:49-04:00

Commit: https://github.com/php/pecl-file_formats-yaml/commit/cbe7ecff8bdfd8099fba5e070c77da4270c53262
Raw diff: https://github.com/php/pecl-file_formats-yaml/commit/cbe7ecff8bdfd8099fba5e070c77da4270c53262.diff

fixes #84

Changed paths:
  M  tests/yaml_emit_001.phpt
  M  tests/yaml_emit_002.phpt
  M  yaml.c


Diff:

diff --git a/tests/yaml_emit_001.phpt b/tests/yaml_emit_001.phpt
index 5c629c5..6e08bc8 100644
--- a/tests/yaml_emit_001.phpt
+++ b/tests/yaml_emit_001.phpt
@@ -112,8 +112,8 @@ string(58) "--- |-
   an embedded newline.
 ...
 "
-string(267) "--- "This string was made with a here doc.\n\nIt contains embedded newlines.\n  \t\tIt
+string(253) "--- "This string was made with a here doc.\n\nIt contains embedded newlines.\n  \t\tIt
   also has some embedded tabs.\n\nHere are some symbols:\n`~!@#$%^&*()_-+={}[]|\\:\";'<>,.?/\n\nThese
-  are extended characters: I\xF1t\xEBrn\xE2ti\xF4n\xE0liz\xE6ti\xF8n\n\n"
+  are extended characters: Iñtërnâtiônàlizætiøn\n\n"
 ...
 "
diff --git a/tests/yaml_emit_002.phpt b/tests/yaml_emit_002.phpt
index 36277a7..c46b4a2 100644
--- a/tests/yaml_emit_002.phpt
+++ b/tests/yaml_emit_002.phpt
@@ -67,7 +67,7 @@ var_dump(yaml_emit(array()));
 ?>
 --EXPECT--
 === Array of scalars ===
-string(604) "---
+string(590) "---
 - ~
 - true
 - false
@@ -94,7 +94,7 @@ string(604) "---
   an embedded newline.
 - "This string was made with a here doc.\n\nIt contains embedded newlines.\n  \t\tIt
   also has some embedded tabs.\n\nHere are some symbols:\n`~!@#$%^&*()_-+={}[]|\\:\";'<>,.?/\n\nThese
-  are extended characters: I\xF1t\xEBrn\xE2ti\xF4n\xE0liz\xE6ti\xF8n\n\n"
+  are extended characters: Iñtërnâtiônàlizætiøn\n\n"
 ...
 "
 === Nested ===
diff --git a/yaml.c b/yaml.c
index 7fb0a02..160d784 100644
--- a/yaml.c
+++ b/yaml.c
@@ -574,7 +574,7 @@ PHP_FUNCTION(yaml_emit)
 	yaml_emitter_set_canonical(&emitter, YAML_G(output_canonical));
 	yaml_emitter_set_indent(&emitter, YAML_G(output_indent));
 	yaml_emitter_set_width(&emitter, YAML_G(output_width));
-	yaml_emitter_set_unicode(&emitter, YAML_ANY_ENCODING != encoding);
+	yaml_emitter_set_unicode(&emitter, 1);
 
 	if (SUCCESS == php_yaml_write_impl(
 				&emitter, data, (yaml_encoding_t) encoding,
@@ -637,7 +637,7 @@ PHP_FUNCTION(yaml_emit_file)
 	yaml_emitter_set_canonical(&emitter, YAML_G(output_canonical));
 	yaml_emitter_set_indent(&emitter, YAML_G(output_indent));
 	yaml_emitter_set_width(&emitter, YAML_G(output_width));
-	yaml_emitter_set_unicode(&emitter, YAML_ANY_ENCODING != encoding);
+	yaml_emitter_set_unicode(&emitter, 1);
 
 	RETVAL_BOOL((SUCCESS == php_yaml_write_impl(
 			&emitter, data, YAML_ANY_ENCODING, callbacks)));