Messages in this thread | | | Date | Mon, 22 Jun 2020 13:31:27 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH v2] perf flamegraph: explicitly set utf-8 encoding |
| |
Em Fri, Jun 19, 2020 at 05:32:31PM +0200, Andreas Gerstmayr escreveu: > on some platforms the default encoding is not utf-8, > which causes an UnicodeDecodeError when reading the flamegraph template > and writing the flamegraph
Thanks, applied.
- Arnaldo
> Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com> > --- > > changelog v2: also write to stdout with utf-8 encoding > > tools/perf/scripts/python/flamegraph.py | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/scripts/python/flamegraph.py b/tools/perf/scripts/python/flamegraph.py > index 61f3be9add6b..65780013f745 100755 > --- a/tools/perf/scripts/python/flamegraph.py > +++ b/tools/perf/scripts/python/flamegraph.py > @@ -17,6 +17,7 @@ > from __future__ import print_function > import sys > import os > +import io > import argparse > import json > > @@ -81,7 +82,7 @@ class FlameGraphCLI: > > if self.args.format == "html": > try: > - with open(self.args.template) as f: > + with io.open(self.args.template, encoding="utf-8") as f: > output_str = f.read().replace("/** @flamegraph_json **/", > json_str) > except IOError as e: > @@ -93,11 +94,12 @@ class FlameGraphCLI: > output_fn = self.args.output or "stacks.json" > > if output_fn == "-": > - sys.stdout.write(output_str) > + with io.open(sys.stdout.fileno(), "w", encoding="utf-8", closefd=False) as out: > + out.write(output_str) > else: > print("dumping data to {}".format(output_fn)) > try: > - with open(output_fn, "w") as out: > + with io.open(output_fn, "w", encoding="utf-8") as out: > out.write(output_str) > except IOError as e: > print("Error writing output file: {}".format(e), file=sys.stderr) > -- > 2.25.4 >
--
- Arnaldo
| |