Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9242615
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T08:37:00+00:00 2026-06-18T08:37:00+00:00

Does this work correctly? Some error messages are already decode and some need do

  • 0

Does this work correctly? Some error messages are already decode and some need do be decoded do get a correct output.

#!/usr/bin/env perl
use warnings;
use strict;
use utf8;
use open qw(:utf8 :std);
use Encode qw(decode_utf8);

# ...

if ( not eval{
    # some error-messages (utf8) are decoded some are not
    1 }
) {
    if ( utf8::is_utf8 $@ ) {
        print $@;
    }
    else {
        print decode_utf8( $@ );
    }
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T08:37:01+00:00Added an answer on June 18, 2026 at 8:37 am

    Am I using utf8::is_utf8 correctly?

    No. Any use of utf8::is_utf8 is incorrect as you should never use it! Using utf8::is_utf8 to guess at semantics of a string is what’s known as an instance of The Unicode Bug. Except for inspecting the internal state of variables when debugging Perl or XS module, utf8::is_utf8 has no use.

    It does not indicate whether the value in a variable is encoded using UTF-8 or not. In fact, that’s impossible to know reliably. For example, does "\xC3\xA9" produce a string that’s encoded using UTF-8 or not? Well, there’s no way to know! It depends on whether I meant "é", "é" or something entirely different.

    If the variable may contain both encoded and decoded strings, it’s up to you to track that using a second variable. I strongly advise against this, though. Just decode everything as it comes in from the outside.

    If you really can’t, your best bet it to try to decode $@ and ignore errors. It’s very unlikely that something readable that isn’t UTF-8 would be valid UTF-8.

    # $@ is sometimes encoded. If it's not,
    # the following will leave it unchanged.
    utf8::decode($@);
    
    print $@;
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Why does this not work? Do I not understand delegate covariance correctly? public delegate
Does this work well as a Singleton in actionscript? i.e. are there any gotchas
Does this work in > iOS 5? .element { background: url(images/myImage.jpg) 50% 0 no-repeat
Why does this work.... function Person(name) { this.name = name; } Person.prototype.speak = function()
Why does this work: List<?> list = new LinkedList<Integer>(); while this gives a type
why does this work: def function1(): a = 10 def function2(): print a function2()
Why does this work well: cout << foo; While this doesn't? (&cout)->operator<<(foo); It works
Does this code work across all standard compliant C++ compilers (it works with g++)?
How does this code work to Find the next highest power of 2 for
Why does this trigger work (Changing the foreground of the button to Red when

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.