diff --git a/guix/derivations.scm b/guix/derivations.scm
index cf329819c471322852bad91c8d1f5a629a27974d..3c433a2685fef5389244f15a2ba5bc36dadd8cb4 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -469,8 +469,9 @@ (define derivation-hash            ; `hashDerivationModulo' in derivations.cc
               (drv    (make-derivation outputs inputs sources
                                        system builder args env-vars)))
          (sha256
-          (string->utf8 (call-with-output-string
-                         (cut write-derivation drv <>))))))))))
+          (with-fluids ((%default-port-encoding "UTF-8"))
+            (string->utf8 (call-with-output-string
+                           (cut write-derivation drv <>)))))))))))
 
 (define (store-path type hash name)               ; makeStorePath
   "Return the store path for NAME/HASH/TYPE."