diff --git a/noodles-bcf/src/record/codec/encoder/site/info/field/value.rs b/noodles-bcf/src/record/codec/encoder/site/info/field/value.rs
index 2e68b0a9f..0df48972d 100644
--- a/noodles-bcf/src/record/codec/encoder/site/info/field/value.rs
+++ b/noodles-bcf/src/record/codec/encoder/site/info/field/value.rs
@@ -24,7 +24,7 @@ where
Some(field::Value::Float(n)) => write_float_value(writer, n),
Some(field::Value::Flag) => write_flag_value(writer),
Some(field::Value::Character(c)) => write_character_value(writer, c),
- Some(field::Value::String(s)) => write_string_value(writer, s),
+ Some(field::Value::String(s)) => write_string_value(writer, &s),
Some(field::Value::Array(field::value::Array::Integer(values))) => {
write_integer_array_value(writer, values)
}
diff --git a/noodles-bcf/src/record/info/field/value.rs b/noodles-bcf/src/record/info/field/value.rs
index 178e22b00..304791749 100644
--- a/noodles-bcf/src/record/info/field/value.rs
+++ b/noodles-bcf/src/record/info/field/value.rs
@@ -1,4 +1,4 @@
-use std::{io, iter};
+use std::{borrow::Cow, io, iter};
use noodles_vcf::{
self as vcf,
@@ -154,7 +154,7 @@ fn read_character_array_value<'a>(src: &mut &'a [u8]) -> io::Result