message: Stop assuming KV values are UTF8 text
diff: @@ -9,6 +9,7 @@ use crate::commands::kv;
  use crate::http;
  use crate::settings::global_user::GlobalUser;
  use crate::settings::toml::Target;
  +use std::io::{self, Write};
  pub fn get(target: &Target, user: &GlobalUser, id: &str, key: &str) -> Result<(), failure::Error> {
  kv::validate_target(target)?;
  @@ -25,10 +26,12 @@ pub fn get(target: &Target, user: &GlobalUser, id: &str, key: &str) -> Result<()
  let response_status = res.status();
  if response_status.is_success() {
  - let body_text = res.text()?;
  + let body = res.bytes()?;
  // We don't use message::success because we don't want to include the emoji/formatting
  - // in case someone is piping this to stdin
  - print!("{}", &body_text);
  + // in case someone is piping this to stdin.
  + // This will probably fail for non-UTF8 on Windows, but should at least work for people
  + // getting binary data from KV on Unix-y systems.
  + io::stdout().write_all(&*body)?;
  } else {
  // This is logic pulled from cloudflare-rs for pretty error formatting right now;
  // it will be redundant when we switch to using cloudflare-rs for all API requests.
  