Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[web] Some Unicode character not being shown #77465

Closed
johnareid54 opened this issue Mar 6, 2021 · 22 comments
Closed

[web] Some Unicode character not being shown #77465

johnareid54 opened this issue Mar 6, 2021 · 22 comments
Assignees
Labels
a: typography Text rendering, possibly libtxt c: regression It was better in the past than it is now e: web_canvaskit CanvasKit (a.k.a. Skia-on-WebGL) rendering backend for Web found in release: 2.0 Found to occur in 2.0 found in release: 2.1 Found to occur in 2.1 found in release: 2.2 Found to occur in 2.2 found in release: 2.5 Found to occur in 2.5 framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on P1 High-priority issues at the top of the work list platform-web Web applications specifically

Comments

@johnareid54
Copy link

johnareid54 commented Mar 6, 2021

  1. Using Dartpad.dev load flutter counter sample.
  2. Update the app title to include Unicode characters (in this case th in upper script)
  3. Find the line in Myapp class with: home: MyHomePage(title: 'Flutter Demo Home Page' ),
  4. and change to: home: MyHomePage(title: 'Flutter Demo Home Page \u1d57 \u02b0' ),
  5. run the code - title is shown as but the last two characters are shown as boxes with x inside the box.

This worked before update to Flutter version 2, and it still works for some Unicode characters i.e. \u22C5, so not sure why it is not working for all valid Unicode characters.

@TahaTesser TahaTesser added the in triage Presently being triaged by the triage team label Mar 8, 2021
@TahaTesser
Copy link
Member

Hi @johnareid54
Thanks for filing the issue, I can reproduce the issue on the web only, definitely looks like a regression

Channel beta, 1.25.0-8.3.pre Channel stable, 2.0.1 & Channel master, 2.1.0-11.0.pre.14
Screenshot 2021-03-08 at 4 22 32 PM Screenshot 2021-03-08 at 4 23 14 PM
code sample
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Demo Home Page \u1d57 \u02b0'),
      ),
      body: Center(
        child: Container(
          child: Text('Hello World'),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {},
      ),
    );
  }
}

Works

flutter doctor -v
[✓] Flutter (Channel beta, 1.25.0-8.3.pre, on macOS 11.2.2 20D80 darwin-x64,
    locale en-GB)
    • Flutter version 1.25.0-8.3.pre at /Users/tahatesser/Code/flutter
    • Framework revision 5d36f2e7f5 (7 weeks ago), 2021-01-14 15:57:49 -0800
    • Engine revision 7a8f8ca02c
    • Dart version 2.12.0 (build 2.12.0-133.7.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (3 available)
    • Taha’s iPad (mobile) • 00008020-000255113EE8402E            • ios
      • iOS 14.4
    • iPhone 12 (mobile)   • BD94A45F-A994-4FC3-BAD9-448D8D2E0F1B • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • Chrome (web)         • chrome                               •
      web-javascript • Google Chrome 88.0.4324.192

• No issues found!

Fails

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.1, on macOS 11.2.2 20D80 darwin-x64, locale
    en-GB)
    • Flutter version 2.0.1 at /Users/tahatesser/Code/flutter_stable
    • Framework revision c5a4b4029c (4 days ago), 2021-03-04 09:47:48 -0800
    • Engine revision 40441def69
    • Dart version 2.12.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (4 available)
    • Taha’s iPad (mobile) • 00008020-000255113EE8402E            • ios
      • iOS 14.4
    • iPhone 12 (mobile)   • BD94A45F-A994-4FC3-BAD9-448D8D2E0F1B • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • macOS (desktop)      • macos                                • darwin-x64
      • macOS 11.2.2 20D80 darwin-x64
    • Chrome (web)         • chrome                               •
      web-javascript • Google Chrome 88.0.4324.192

• No issues found!
[✓] Flutter (Channel master, 2.1.0-11.0.pre.145, on macOS 11.2.2 20D80
    darwin-x64, locale en-GB)
    • Flutter version 2.1.0-11.0.pre.145 at
      /Users/tahatesser/Code/flutter_master
    • Framework revision a0ba646408 (2 days ago), 2021-03-05 22:09:03 -0500
    • Engine revision f751d04fa0
    • Dart version 2.13.0 (build 2.13.0-107.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (4 available)
    • Taha’s iPad (mobile) • 00008020-000255113EE8402E            • ios
      • iOS 14.4
    • iPhone 12 (mobile)   • BD94A45F-A994-4FC3-BAD9-448D8D2E0F1B • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • macOS (desktop)      • macos                                • darwin-x64
      • macOS 11.2.2 20D80 darwin-x64
    • Chrome (web)         • chrome                               •
      web-javascript • Google Chrome 88.0.4324.192

• No issues found!

Thank you

@TahaTesser TahaTesser removed the in triage Presently being triaged by the triage team label Mar 8, 2021
@TahaTesser TahaTesser changed the title Unicode character not being shown [web] Some Unicode character not being shown Mar 8, 2021
@TahaTesser TahaTesser added a: typography Text rendering, possibly libtxt found in release: 2.1 Found to occur in 2.1 framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on platform-web Web applications specifically c: regression It was better in the past than it is now found in release: 2.0 Found to occur in 2.0 labels Mar 8, 2021
@lbguilherme
Copy link

Seems related to #77212.

@yjbanov
Copy link
Contributor

yjbanov commented Mar 10, 2021

Does it work if you provide a font that supports this character?

@yjbanov yjbanov self-assigned this Mar 11, 2021
@yjbanov yjbanov added the assigned for triage issue is assigned to a domain expert for further triage label Mar 11, 2021
@johnareid54
Copy link
Author

@yjbanov - Does it work if you provide a font that supports this character?

I suppose I could specify a font, but should it not be something that just work out of the box?

The debug console comes up with:

Could not find a set of Noto fonts to display all missing characters. Please add a font asset for the missing characters. See: https://flutter.dev/docs/cookbook/design/fonts

@ToyWalrus
Copy link

@yjbanov My team's app does supply our own font but this is an issue we're still experiencing. We're ready to upgrade to Flutter 2 but the only thing holding us back is this issue, petty as it may seem. Is there any progress on this lately?

@yjbanov
Copy link
Contributor

yjbanov commented May 6, 2021

@ToyWalrus would you be able to share the font file? Or point to a similar font in fonts.google.com that covers the missing characters but is still rendered incorrectly in Flutter?

As a workaround you can use --web-renderer=html to fix this issue, which used to be the default prior to Flutter 2.

@ToyWalrus
Copy link

ToyWalrus commented May 10, 2021

@yjbanov Sure. I'm unable to provide the font we use for legal reasons, but a font that is similar is SourceSansPro.

In the following code, it renders the ellipsis characters but afterwards gives a strange glyph of a crossed box. This is the exact same behavior that my team is seeing with our font. (I used Flutter version 2.0.5 for this; code courtesy of this issue)

import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

final Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(
        scaffoldBackgroundColor: darkBlue,
        textTheme: GoogleFonts.sourceSansProTextTheme(ThemeData.dark().textTheme),
      ),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        width: 100,
        child: Text(
          'Hello, World!',
          style: Theme.of(context).textTheme.headline4,
          maxLines: 1,
          overflow: TextOverflow.ellipsis,
        ),
      ),
    );
  }
}

(I'll also note that I tried this sample both with the GoogleFonts plugin as well as using the font as a downloaded asset and got the same result with both)

The issue with the ellipsis is the main problem. As per your comment, yes using --web-renderer=html does fix the font issue, but doing so negates the reason we're upgrading to Flutter 2 for, which is using SKIA for the web rendering.

@yjbanov yjbanov added P1 High-priority issues at the top of the work list and removed assigned for triage issue is assigned to a domain expert for further triage labels May 18, 2021
@yjbanov yjbanov removed their assignment May 18, 2021
@yjbanov yjbanov added this to To do in CanvasKit Text May 18, 2021
@mdebbar mdebbar added the e: web_canvaskit CanvasKit (a.k.a. Skia-on-WebGL) rendering backend for Web label May 27, 2021
@TahaTesser
Copy link
Member

Used the following minimal code sample

complete minimal runnable code sample
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.

    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(title),
      ),
      body: SingleChildScrollView(
        child: Row(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Text(r''' Mathematical Alphanumeric Symbols[1][2]
Official Unicode Consortium code chart (PDF)
 	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+1D40x	𝐀	𝐁	𝐂	𝐃	𝐄	𝐅	𝐆	𝐇	𝐈	𝐉	𝐊	𝐋	𝐌	𝐍	𝐎	𝐏
U+1D41x	𝐐	𝐑	𝐒	𝐓	𝐔	𝐕	𝐖	𝐗	𝐘	𝐙	𝐚	𝐛	𝐜	𝐝	𝐞	𝐟
U+1D42x	𝐠	𝐡	𝐢	𝐣	𝐤	𝐥	𝐦	𝐧	𝐨	𝐩	𝐪	𝐫	𝐬	𝐭	𝐮	𝐯
U+1D43x	𝐰	𝐱	𝐲	𝐳	𝐴	𝐵	𝐶	𝐷	𝐸	𝐹	𝐺	𝐻	𝐼	𝐽	𝐾	𝐿
U+1D44x	𝑀	𝑁	𝑂	𝑃	𝑄	𝑅	𝑆	𝑇	𝑈	𝑉	𝑊	𝑋	𝑌	𝑍	𝑎	𝑏
U+1D45x	𝑐	𝑑	𝑒	𝑓	𝑔		𝑖	𝑗	𝑘	𝑙	𝑚	𝑛	𝑜	𝑝	𝑞	𝑟
U+1D46x	𝑠	𝑡	𝑢	𝑣	𝑤	𝑥	𝑦	𝑧	𝑨	𝑩	𝑪	𝑫	𝑬	𝑭	𝑮	𝑯
U+1D47x	𝑰	𝑱	𝑲	𝑳	𝑴	𝑵	𝑶	𝑷	𝑸	𝑹	𝑺	𝑻	𝑼	𝑽	𝑾	𝑿
U+1D48x	𝒀	𝒁	𝒂	𝒃	𝒄	𝒅	𝒆	𝒇	𝒈	𝒉	𝒊	𝒋	𝒌	𝒍	𝒎	𝒏
U+1D49x	𝒐	𝒑	𝒒	𝒓	𝒔	𝒕	𝒖	𝒗	𝒘	𝒙	𝒚	𝒛	𝒜		𝒞	𝒟
U+1D4Ax			𝒢			𝒥	𝒦			𝒩	𝒪	𝒫	𝒬		𝒮	𝒯
U+1D4Bx	𝒰	𝒱	𝒲	𝒳	𝒴	𝒵	𝒶	𝒷	𝒸	𝒹		𝒻		𝒽	𝒾	𝒿
U+1D4Cx	𝓀	𝓁	𝓂	𝓃		𝓅	𝓆	𝓇	𝓈	𝓉	𝓊	𝓋	𝓌	𝓍	𝓎	𝓏
U+1D4Dx	𝓐	𝓑	𝓒	𝓓	𝓔	𝓕	𝓖	𝓗	𝓘	𝓙	𝓚	𝓛	𝓜	𝓝	𝓞	𝓟
U+1D4Ex	𝓠	𝓡	𝓢	𝓣	𝓤	𝓥	𝓦	𝓧	𝓨	𝓩	𝓪	𝓫	𝓬	𝓭	𝓮	𝓯
U+1D4Fx	𝓰	𝓱	𝓲	𝓳	𝓴	𝓵	𝓶	𝓷	𝓸	𝓹	𝓺	𝓻	𝓼	𝓽	𝓾	𝓿
U+1D50x	𝔀	𝔁	𝔂	𝔃	𝔄	𝔅		𝔇	𝔈	𝔉	𝔊			𝔍	𝔎	𝔏
U+1D51x	𝔐	𝔑	𝔒	𝔓	𝔔		𝔖	𝔗	𝔘	𝔙	𝔚	𝔛	𝔜		𝔞	𝔟
U+1D52x	𝔠	𝔡	𝔢	𝔣	𝔤	𝔥	𝔦	𝔧	𝔨	𝔩	𝔪	𝔫	𝔬	𝔭	𝔮	𝔯
U+1D53x	𝔰	𝔱	𝔲	𝔳	𝔴	𝔵	𝔶	𝔷	𝔸	𝔹		𝔻	𝔼	𝔽	𝔾
U+1D54x	𝕀	𝕁	𝕂	𝕃	𝕄		𝕆				𝕊	𝕋	𝕌	𝕍	𝕎	𝕏
U+1D55x	𝕐		𝕒	𝕓	𝕔	𝕕	𝕖	𝕗	𝕘	𝕙	𝕚	𝕛	𝕜	𝕝	𝕞	𝕟
U+1D56x	𝕠	𝕡	𝕢	𝕣	𝕤	𝕥	𝕦	𝕧	𝕨	𝕩	𝕪	𝕫	𝕬	𝕭	𝕮	𝕯
U+1D57x	𝕰	𝕱	𝕲	𝕳	𝕴	𝕵	𝕶	𝕷	𝕸	𝕹	𝕺	𝕻	𝕼	𝕽	𝕾	𝕿
U+1D58x	𝖀	𝖁	𝖂	𝖃	𝖄	𝖅	𝖆	𝖇	𝖈	𝖉	𝖊	𝖋	𝖌	𝖍	𝖎	𝖏
U+1D59x	𝖐	𝖑	𝖒	𝖓	𝖔	𝖕	𝖖	𝖗	𝖘	𝖙	𝖚	𝖛	𝖜	𝖝	𝖞	𝖟
U+1D5Ax	𝖠	𝖡	𝖢	𝖣	𝖤	𝖥	𝖦	𝖧	𝖨	𝖩	𝖪	𝖫	𝖬	𝖭	𝖮	𝖯
U+1D5Bx	𝖰	𝖱	𝖲	𝖳	𝖴	𝖵	𝖶	𝖷	𝖸	𝖹	𝖺	𝖻	𝖼	𝖽	𝖾	𝖿
U+1D5Cx	𝗀	𝗁	𝗂	𝗃	𝗄	𝗅	𝗆	𝗇	𝗈	𝗉	𝗊	𝗋	𝗌	𝗍	𝗎	𝗏
U+1D5Dx	𝗐	𝗑	𝗒	𝗓	𝗔	𝗕	𝗖	𝗗	𝗘	𝗙	𝗚	𝗛	𝗜	𝗝	𝗞	𝗟
U+1D5Ex	𝗠	𝗡	𝗢	𝗣	𝗤	𝗥	𝗦	𝗧	𝗨	𝗩	𝗪	𝗫	𝗬	𝗭	𝗮	𝗯
U+1D5Fx	𝗰	𝗱	𝗲	𝗳	𝗴	𝗵	𝗶	𝗷	𝗸	𝗹	𝗺	𝗻	𝗼	𝗽	𝗾	𝗿
U+1D60x	𝘀	𝘁	𝘂	𝘃	𝘄	𝘅	𝘆	𝘇	𝘈	𝘉	𝘊	𝘋	𝘌	𝘍	𝘎	𝘏
U+1D61x	𝘐	𝘑	𝘒	𝘓	𝘔	𝘕	𝘖	𝘗	𝘘	𝘙	𝘚	𝘛	𝘜	𝘝	𝘞	𝘟
U+1D62x	𝘠	𝘡	𝘢	𝘣	𝘤	𝘥	𝘦	𝘧	𝘨	𝘩	𝘪	𝘫	𝘬	𝘭	𝘮	𝘯
U+1D63x	𝘰	𝘱	𝘲	𝘳	𝘴	𝘵	𝘶	𝘷	𝘸	𝘹	𝘺	𝘻	𝘼	𝘽	𝘾	𝘿
U+1D64x	𝙀	𝙁	𝙂	𝙃	𝙄	𝙅	𝙆	𝙇	𝙈	𝙉	𝙊	𝙋	𝙌	𝙍	𝙎	𝙏
U+1D65x	𝙐	𝙑	𝙒	𝙓	𝙔	𝙕	𝙖	𝙗	𝙘	𝙙	𝙚	𝙛	𝙜	𝙝	𝙞	𝙟
U+1D66x	𝙠	𝙡	𝙢	𝙣	𝙤	𝙥	𝙦	𝙧	𝙨	𝙩	𝙪	𝙫	𝙬	𝙭	𝙮	𝙯
U+1D67x	𝙰	𝙱	𝙲	𝙳	𝙴	𝙵	𝙶	𝙷	𝙸	𝙹	𝙺	𝙻	𝙼	𝙽	𝙾	𝙿
U+1D68x	𝚀	𝚁	𝚂	𝚃	𝚄	𝚅	𝚆	𝚇	𝚈	𝚉	𝚊	𝚋	𝚌	𝚍	𝚎	𝚏
U+1D69x	𝚐	𝚑	𝚒	𝚓	𝚔	𝚕	𝚖	𝚗	𝚘	𝚙	𝚚	𝚛	𝚜	𝚝	𝚞	𝚟
U+1D6Ax	𝚠	𝚡	𝚢	𝚣	𝚤	𝚥			𝚨	𝚩	𝚪	𝚫	𝚬	𝚭	𝚮	𝚯
U+1D6Bx	𝚰	𝚱	𝚲	𝚳	𝚴	𝚵	𝚶	𝚷	𝚸	𝚹	𝚺	𝚻	𝚼	𝚽	𝚾	𝚿
U+1D6Cx	𝛀	𝛁	𝛂	𝛃	𝛄	𝛅	𝛆	𝛇	𝛈	𝛉	𝛊	𝛋	𝛌	𝛍	𝛎	𝛏
U+1D6Dx	𝛐	𝛑	𝛒	𝛓	𝛔	𝛕	𝛖	𝛗	𝛘	𝛙	𝛚	𝛛	𝛜	𝛝	𝛞	𝛟
U+1D6Ex	𝛠	𝛡	𝛢	𝛣	𝛤	𝛥	𝛦	𝛧	𝛨	𝛩	𝛪	𝛫	𝛬	𝛭	𝛮	𝛯
U+1D6Fx	𝛰	𝛱	𝛲	𝛳	𝛴	𝛵	𝛶	𝛷	𝛸	𝛹	𝛺	𝛻	𝛼	𝛽	𝛾	𝛿
U+1D70x	𝜀	𝜁	𝜂	𝜃	𝜄	𝜅	𝜆	𝜇	𝜈	𝜉	𝜊	𝜋	𝜌	𝜍	𝜎	𝜏
U+1D71x	𝜐	𝜑	𝜒	𝜓	𝜔	𝜕	𝜖	𝜗	𝜘	𝜙	𝜚	𝜛	𝜜	𝜝	𝜞	𝜟
U+1D72x	𝜠	𝜡	𝜢	𝜣	𝜤	𝜥	𝜦	𝜧	𝜨	𝜩	𝜪	𝜫	𝜬	𝜭	𝜮	𝜯
U+1D73x	𝜰	𝜱	𝜲	𝜳	𝜴	𝜵	𝜶	𝜷	𝜸	𝜹	𝜺	𝜻	𝜼	𝜽	𝜾	𝜿
U+1D74x	𝝀	𝝁	𝝂	𝝃	𝝄	𝝅	𝝆	𝝇	𝝈	𝝉	𝝊	𝝋	𝝌	𝝍	𝝎	𝝏
U+1D75x	𝝐	𝝑	𝝒	𝝓	𝝔	𝝕	𝝖	𝝗	𝝘	𝝙	𝝚	𝝛	𝝜	𝝝	𝝞	𝝟
U+1D76x	𝝠	𝝡	𝝢	𝝣	𝝤	𝝥	𝝦	𝝧	𝝨	𝝩	𝝪	𝝫	𝝬	𝝭	𝝮	𝝯
U+1D77x	𝝰	𝝱	𝝲	𝝳	𝝴	𝝵	𝝶	𝝷	𝝸	𝝹	𝝺	𝝻	𝝼	𝝽	𝝾	𝝿
U+1D78x	𝞀	𝞁	𝞂	𝞃	𝞄	𝞅	𝞆	𝞇	𝞈	𝞉	𝞊	𝞋	𝞌	𝞍	𝞎	𝞏
U+1D79x	𝞐	𝞑	𝞒	𝞓	𝞔	𝞕	𝞖	𝞗	𝞘	𝞙	𝞚	𝞛	𝞜	𝞝	𝞞	𝞟
U+1D7Ax	𝞠	𝞡	𝞢	𝞣	𝞤	𝞥	𝞦	𝞧	𝞨	𝞩	𝞪	𝞫	𝞬	𝞭	𝞮	𝞯
U+1D7Bx	𝞰	𝞱	𝞲	𝞳	𝞴	𝞵	𝞶	𝞷	𝞸	𝞹	𝞺	𝞻	𝞼	𝞽	𝞾	𝞿
U+1D7Cx	𝟀	𝟁	𝟂	𝟃	𝟄	𝟅	𝟆	𝟇	𝟈	𝟉	𝟊	𝟋			𝟎	𝟏
U+1D7Dx	𝟐	𝟑	𝟒	𝟓	𝟔	𝟕	𝟖	𝟗	𝟘	𝟙	𝟚	𝟛	𝟜	𝟝	𝟞	𝟟
U+1D7Ex	𝟠	𝟡	𝟢	𝟣	𝟤	𝟥	𝟦	𝟧	𝟨	𝟩	𝟪	𝟫	𝟬	𝟭	𝟮	𝟯
U+1D7Fx	𝟰	𝟱	𝟲	𝟳	𝟴	𝟵	𝟶	𝟷	𝟸	𝟹	𝟺	𝟻	𝟼	𝟽	𝟾	𝟿
'''),
            Flexible(
              child: Wrap(
                direction: Axis.horizontal,
                children: [
                  Text(r'''Supplemental Mathematical Operators[1]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+2A0x	⨀	⨁	⨂	⨃	⨄	⨅	⨆	⨇	⨈	⨉	⨊	⨋	⨌	⨍	⨎	⨏
U+2A1x	⨐	⨑	⨒	⨓	⨔	⨕	⨖	⨗	⨘	⨙	⨚	⨛	⨜	⨝	⨞	⨟
U+2A2x	⨠	⨡	⨢	⨣	⨤	⨥	⨦	⨧	⨨	⨩	⨪	⨫	⨬	⨭	⨮	⨯
U+2A3x	⨰	⨱	⨲	⨳	⨴	⨵	⨶	⨷	⨸	⨹	⨺	⨻	⨼	⨽	⨾	⨿
U+2A4x	⩀	⩁	⩂	⩃	⩄	⩅	⩆	⩇	⩈	⩉	⩊	⩋	⩌	⩍	⩎	⩏
U+2A5x	⩐	⩑	⩒	⩓	⩔	⩕	⩖	⩗	⩘	⩙	⩚	⩛	⩜	⩝	⩞	⩟
U+2A6x	⩠	⩡	⩢	⩣	⩤	⩥	⩦	⩧	⩨	⩩	⩪	⩫	⩬	⩭	⩮	⩯
U+2A7x	⩰	⩱	⩲	⩳	⩴	⩵	⩶	⩷	⩸	⩹	⩺	⩻	⩼	⩽	⩾	⩿
U+2A8x	⪀	⪁	⪂	⪃	⪄	⪅	⪆	⪇	⪈	⪉	⪊	⪋	⪌	⪍	⪎	⪏
U+2A9x	⪐	⪑	⪒	⪓	⪔	⪕	⪖	⪗	⪘	⪙	⪚	⪛	⪜	⪝	⪞	⪟
U+2AAx	⪠	⪡	⪢	⪣	⪤	⪥	⪦	⪧	⪨	⪩	⪪	⪫	⪬	⪭	⪮	⪯
U+2ABx	⪰	⪱	⪲	⪳	⪴	⪵	⪶	⪷	⪸	⪹	⪺	⪻	⪼	⪽	⪾	⪿
U+2ACx	⫀	⫁	⫂	⫃	⫄	⫅	⫆	⫇	⫈	⫉	⫊	⫋	⫌	⫍	⫎	⫏
U+2ADx	⫐	⫑	⫒	⫓	⫔	⫕	⫖	⫗	⫘	⫙	⫚	⫛	⫝̸	⫝	⫞	⫟
U+2AEx	⫠	⫡	⫢	⫣	⫤	⫥	⫦	⫧	⫨	⫩	⫪	⫫	⫬	⫭	⫮	⫯
U+2AFx	⫰	⫱	⫲	⫳	⫴	⫵	⫶	⫷	⫸	⫹	⫺	⫻	⫼	⫽	⫾	⫿
'''),
                  Text(r'''Mathematical Operators[1]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+220x	∀	∁	∂	∃	∄	∅	∆	∇	∈	∉	∊	∋	∌	∍	∎	∏
U+221x	∐	∑	−	∓	∔	∕	∖	∗	∘	∙	√	∛	∜	∝	∞	∟
U+222x	∠	∡	∢	∣	∤	∥	∦	∧	∨	∩	∪	∫	∬	∭	∮	∯
U+223x	∰	∱	∲	∳	∴	∵	∶	∷	∸	∹	∺	∻	∼	∽	∾	∿
U+224x	≀	≁	≂	≃	≄	≅	≆	≇	≈	≉	≊	≋	≌	≍	≎	≏
U+225x	≐	≑	≒	≓	≔	≕	≖	≗	≘	≙	≚	≛	≜	≝	≞	≟
U+226x	≠	≡	≢	≣	≤	≥	≦	≧	≨	≩	≪	≫	≬	≭	≮	≯
U+227x	≰	≱	≲	≳	≴	≵	≶	≷	≸	≹	≺	≻	≼	≽	≾	≿
U+228x	⊀	⊁	⊂	⊃	⊄	⊅	⊆	⊇	⊈	⊉	⊊	⊋	⊌	⊍	⊎	⊏
U+229x	⊐	⊑	⊒	⊓	⊔	⊕	⊖	⊗	⊘	⊙	⊚	⊛	⊜	⊝	⊞	⊟
U+22Ax	⊠	⊡	⊢	⊣	⊤	⊥	⊦	⊧	⊨	⊩	⊪	⊫	⊬	⊭	⊮	⊯
U+22Bx	⊰	⊱	⊲	⊳	⊴	⊵	⊶	⊷	⊸	⊹	⊺	⊻	⊼	⊽	⊾	⊿
U+22Cx	⋀	⋁	⋂	⋃	⋄	⋅	⋆	⋇	⋈	⋉	⋊	⋋	⋌	⋍	⋎	⋏
U+22Dx	⋐	⋑	⋒	⋓	⋔	⋕	⋖	⋗	⋘	⋙	⋚	⋛	⋜	⋝	⋞	⋟
U+22Ex	⋠	⋡	⋢	⋣	⋤	⋥	⋦	⋧	⋨	⋩	⋪	⋫	⋬	⋭	⋮	⋯
U+22Fx	⋰	⋱	⋲	⋳	⋴	⋵	⋶	⋷	⋸	⋹	⋺	⋻	⋼	⋽	⋾	⋿
'''),
                  Text(r'''Letterlike Symbols[1]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+210x	℀	℁	ℂ	℃	℄	℅	℆	ℇ	℈	℉	ℊ	ℋ	ℌ	ℍ	ℎ	ℏ
U+211x	ℐ	ℑ	ℒ	ℓ	℔	ℕ	№	℗	℘	ℙ	ℚ	ℛ	ℜ	ℝ	℞	℟
U+212x	℠	℡	™	℣	ℤ	℥	Ω	℧	ℨ	℩	K	Å	ℬ	ℭ	℮	ℯ
U+213x	ℰ	ℱ	Ⅎ	ℳ	ℴ	ℵ	ℶ	ℷ	ℸ	ℹ	℺	℻	ℼ	ℽ	ℾ	ℿ
U+214x	⅀	⅁	⅂	⅃	⅄	ⅅ	ⅆ	ⅇ	ⅈ	ⅉ	⅊	⅋	⅌	⅍	ⅎ	⅏
'''),
                  Text(r'''Miscellaneous Mathematical Symbols-A[1]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+27Cx	⟀	⟁	⟂	⟃	⟄	⟅	⟆	⟇	⟈	⟉	⟊	⟋	⟌	⟍	⟎	⟏
U+27Dx	⟐	⟑	⟒	⟓	⟔	⟕	⟖	⟗	⟘	⟙	⟚	⟛	⟜	⟝	⟞	⟟
U+27Ex	⟠	⟡	⟢	⟣	⟤	⟥	⟦	⟧	⟨	⟩	⟪	⟫	⟬	⟭	⟮	⟯'''),
                  Text(r'''Miscellaneous Mathematical Symbols-B[1]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+298x	⦀	⦁	⦂	⦃	⦄	⦅	⦆	⦇	⦈	⦉	⦊	⦋	⦌	⦍	⦎	⦏
U+299x	⦐	⦑	⦒	⦓	⦔	⦕	⦖	⦗	⦘	⦙	⦚	⦛	⦜	⦝	⦞	⦟
U+29Ax	⦠	⦡	⦢	⦣	⦤	⦥	⦦	⦧	⦨	⦩	⦪	⦫	⦬	⦭	⦮	⦯
U+29Bx	⦰	⦱	⦲	⦳	⦴	⦵	⦶	⦷	⦸	⦹	⦺	⦻	⦼	⦽	⦾	⦿
U+29Cx	⧀	⧁	⧂	⧃	⧄	⧅	⧆	⧇	⧈	⧉	⧊	⧋	⧌	⧍	⧎	⧏
U+29Dx	⧐	⧑	⧒	⧓	⧔	⧕	⧖	⧗	⧘	⧙	⧚	⧛	⧜	⧝	⧞	⧟
U+29Ex	⧠	⧡	⧢	⧣	⧤	⧥	⧦	⧧	⧨	⧩	⧪	⧫	⧬	⧭	⧮	⧯
U+29Fx	⧰	⧱	⧲	⧳	⧴	⧵	⧶	⧷	⧸	⧹	⧺	⧻	⧼	⧽	⧾	⧿
'''),
                  Text(r'''Miscellaneous Technical[1][2]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+230x	⌀	⌁	⌂	⌃	⌄	⌅	⌆	⌇	⌈	⌉	⌊	⌋	⌌	⌍	⌎	⌏
U+231x	⌐	⌑	⌒	⌓	⌔	⌕	⌖	⌗	⌘	⌙	⌚	⌛	⌜	⌝	⌞	⌟
U+232x	⌠	⌡	⌢	⌣	⌤	⌥	⌦	⌧	⌨	〈	〉	⌫	⌬	⌭	⌮	⌯
U+233x	⌰	⌱	⌲	⌳	⌴	⌵	⌶	⌷	⌸	⌹	⌺	⌻	⌼	⌽	⌾	⌿
U+234x	⍀	⍁	⍂	⍃	⍄	⍅	⍆	⍇	⍈	⍉	⍊	⍋	⍌	⍍	⍎	⍏
U+235x	⍐	⍑	⍒	⍓	⍔	⍕	⍖	⍗	⍘	⍙	⍚	⍛	⍜	⍝	⍞	⍟
U+236x	⍠	⍡	⍢	⍣	⍤	⍥	⍦	⍧	⍨	⍩	⍪	⍫	⍬	⍭	⍮	⍯
U+237x	⍰	⍱	⍲	⍳	⍴	⍵	⍶	⍷	⍸	⍹	⍺	⍻	⍼	⍽	⍾	⍿
U+238x	⎀	⎁	⎂	⎃	⎄	⎅	⎆	⎇	⎈	⎉	⎊	⎋	⎌	⎍	⎎	⎏
U+239x	⎐	⎑	⎒	⎓	⎔	⎕	⎖	⎗	⎘	⎙	⎚	⎛	⎜	⎝	⎞	⎟
U+23Ax	⎠	⎡	⎢	⎣	⎤	⎥	⎦	⎧	⎨	⎩	⎪	⎫	⎬	⎭	⎮	⎯
U+23Bx	⎰	⎱	⎲	⎳	⎴	⎵	⎶	⎷	⎸	⎹	⎺	⎻	⎼	⎽	⎾	⎿
U+23Cx	⏀	⏁	⏂	⏃	⏄	⏅	⏆	⏇	⏈	⏉	⏊	⏋	⏌	⏍	⏎	⏏
U+23Dx	⏐	⏑	⏒	⏓	⏔	⏕	⏖	⏗	⏘	⏙	⏚	⏛	⏜	⏝	⏞	⏟
U+23Ex	⏠	⏡	⏢	⏣	⏤	⏥	⏦	⏧	⏨	⏩	⏪	⏫	⏬	⏭	⏮	⏯
U+23Fx	⏰	⏱	⏲	⏳	⏴	⏵	⏶	⏷	⏸	⏹	⏺	⏻	⏼	⏽	⏾	⏿
             '''),
                  Text(r'''Geometric Shapes[1]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+25Ax	■	□	▢	▣	▤	▥	▦	▧	▨	▩	▪	▫	▬	▭	▮	▯
U+25Bx	▰	▱	▲	△	▴	▵	▶	▷	▸	▹	►	▻	▼	▽	▾	▿
U+25Cx	◀	◁	◂	◃	◄	◅	◆	◇	◈	◉	◊	○	◌	◍	◎	●
U+25Dx	◐	◑	◒	◓	◔	◕	◖	◗	◘	◙	◚	◛	◜	◝	◞	◟
U+25Ex	◠	◡	◢	◣	◤	◥	◦	◧	◨	◩	◪	◫	◬	◭	◮	◯
U+25Fx	◰	◱	◲	◳	◴	◵	◶	◷	◸	◹	◺	◻	◼	◽	◾	◿
'''),
                  Text(r'''Miscellaneous Symbols and Arrows[1][2]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+2B0x	⬀	⬁	⬂	⬃	⬄	⬅	⬆	⬇	⬈	⬉	⬊	⬋	⬌	⬍	⬎	⬏
U+2B1x	⬐	⬑	⬒	⬓	⬔	⬕	⬖	⬗	⬘	⬙	⬚	⬛	⬜	⬝	⬞	⬟
U+2B2x	⬠	⬡	⬢	⬣	⬤	⬥	⬦	⬧	⬨	⬩	⬪	⬫	⬬	⬭	⬮	⬯
U+2B3x	⬰	⬱	⬲	⬳	⬴	⬵	⬶	⬷	⬸	⬹	⬺	⬻	⬼	⬽	⬾	⬿
U+2B4x	⭀	⭁	⭂	⭃	⭄	⭅	⭆	⭇	⭈	⭉	⭊	⭋	⭌	⭍	⭎	⭏
U+2B5x	⭐	⭑	⭒	⭓	⭔	⭕	⭖	⭗	⭘	⭙	⭚	⭛	⭜	⭝	⭞	⭟
U+2B6x	⭠	⭡	⭢	⭣	⭤	⭥	⭦	⭧	⭨	⭩	⭪	⭫	⭬	⭭	⭮	⭯
U+2B7x	⭰	⭱	⭲	⭳			⭶	⭷	⭸	⭹	⭺	⭻	⭼	⭽	⭾	⭿
U+2B8x	⮀	⮁	⮂	⮃	⮄	⮅	⮆	⮇	⮈	⮉	⮊	⮋	⮌	⮍	⮎	⮏
U+2B9x	⮐	⮑	⮒	⮓	⮔	⮕		⮗	⮘	⮙	⮚	⮛	⮜	⮝	⮞	⮟
U+2BAx	⮠	⮡	⮢	⮣	⮤	⮥	⮦	⮧	⮨	⮩	⮪	⮫	⮬	⮭	⮮	⮯
U+2BBx	⮰	⮱	⮲	⮳	⮴	⮵	⮶	⮷	⮸	⮹	⮺	⮻	⮼	⮽	⮾	⮿
U+2BCx	⯀	⯁	⯂	⯃	⯄	⯅	⯆	⯇	⯈	⯉	⯊	⯋	⯌	⯍	⯎	⯏
U+2BDx	⯐	⯑	⯒	⯓	⯔	⯕	⯖	⯗	⯘	⯙	⯚	⯛	⯜	⯝	⯞	⯟
U+2BEx	⯠	⯡	⯢	⯣	⯤	⯥	⯦	⯧	⯨	⯩	⯪	⯫	⯬	⯭	⯮	⯯
U+2BFx	⯰	⯱	⯲	⯳	⯴	⯵	⯶	⯷	⯸	⯹	⯺	⯻	⯼	⯽	⯾	⯿
'''),
                  Text(r'''Arrows[1]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+219x	←	↑	→	↓	↔	↕	↖	↗	↘	↙	↚	↛	↜	↝	↞	↟
U+21Ax	↠	↡	↢	↣	↤	↥	↦	↧	↨	↩	↪	↫	↬	↭	↮	↯
U+21Bx	↰	↱	↲	↳	↴	↵	↶	↷	↸	↹	↺	↻	↼	↽	↾	↿
U+21Cx	⇀	⇁	⇂	⇃	⇄	⇅	⇆	⇇	⇈	⇉	⇊	⇋	⇌	⇍	⇎	⇏
U+21Dx	⇐	⇑	⇒	⇓	⇔	⇕	⇖	⇗	⇘	⇙	⇚	⇛	⇜	⇝	⇞	⇟
U+21Ex	⇠	⇡	⇢	⇣	⇤	⇥	⇦	⇧	⇨	⇩	⇪	⇫	⇬	⇭	⇮	⇯
U+21Fx	⇰	⇱	⇲	⇳	⇴	⇵	⇶	⇷	⇸	⇹	⇺	⇻	⇼	⇽	⇾	⇿
'''),
                  Text(r'''Supplemental Arrows-A[1]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+27Fx	⟰	⟱	⟲	⟳	⟴	⟵	⟶	⟷	⟸	⟹	⟺	⟻	⟼	⟽	⟾	⟿
'''),
                  Text(r'''Supplemental Arrows-B[1]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+290x	⤀	⤁	⤂	⤃	⤄	⤅	⤆	⤇	⤈	⤉	⤊	⤋	⤌	⤍	⤎	⤏
U+291x	⤐	⤑	⤒	⤓	⤔	⤕	⤖	⤗	⤘	⤙	⤚	⤛	⤜	⤝	⤞	⤟
U+292x	⤠	⤡	⤢	⤣	⤤	⤥	⤦	⤧	⤨	⤩	⤪	⤫	⤬	⤭	⤮	⤯
U+293x	⤰	⤱	⤲	⤳	⤴	⤵	⤶	⤷	⤸	⤹	⤺	⤻	⤼	⤽	⤾	⤿
U+294x	⥀	⥁	⥂	⥃	⥄	⥅	⥆	⥇	⥈	⥉	⥊	⥋	⥌	⥍	⥎	⥏
U+295x	⥐	⥑	⥒	⥓	⥔	⥕	⥖	⥗	⥘	⥙	⥚	⥛	⥜	⥝	⥞	⥟
U+296x	⥠	⥡	⥢	⥣	⥤	⥥	⥦	⥧	⥨	⥩	⥪	⥫	⥬	⥭	⥮	⥯
U+297x	⥰	⥱	⥲	⥳	⥴	⥵	⥶	⥷	⥸	⥹	⥺	⥻	⥼	⥽	⥾	⥿
'''),
                  Text(r'''Arabic Mathematical Alphabetic Symbols[1][2]
Official Unicode Consortium code chart (PDF)
 0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
U+1EE0x	𞸀	𞸁	𞸂	𞸃		𞸅	𞸆	𞸇	𞸈	𞸉	𞸊	𞸋	𞸌	𞸍	𞸎	𞸏
U+1EE1x	𞸐	𞸑	𞸒	𞸓	𞸔	𞸕	𞸖	𞸗	𞸘	𞸙	𞸚	𞸛	𞸜	𞸝	𞸞	𞸟
U+1EE2x		𞸡	𞸢		𞸤			𞸧		𞸩	𞸪	𞸫	𞸬	𞸭	𞸮	𞸯
U+1EE3x	𞸰	𞸱	𞸲		𞸴	𞸵	𞸶	𞸷		𞸹		𞸻

U+1EE6x		𞹡	𞹢		𞹤			𞹧	𞹨	𞹩	𞹪		𞹬	𞹭	𞹮	𞹯
U+1EE7x	𞹰	𞹱	𞹲		𞹴	𞹵	𞹶	𞹷		𞹹	𞹺	𞹻	𞹼		𞹾

U+1EECx
U+1EEDx
U+1EEEx
U+1EEFx	𞻰	𞻱
'''),
                  Text(r'''U+	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
200x	[NQ SP]	[MQ SP]	[EN SP]	[EM SP]	[3/M SP]	[4/M SP]	[6/M SP]	[F SP]	[P SP]	[TH SP]	[H SP]	[ZW SP]	[ZW NJ]	[ZW J]	[LRM]	[RLM]
201x	‐	[NB -]	‒	–	—	―	‖	‗	‘	’	‚	‛	“	”	„	‟
202x	†	‡	•	‣	․	‥	…	‧	[L SEP]	[P SEP]	[LRE]	[RLE]	[PDF]	[LRO]	[RLO]	[NNB SP]
203x	‰	‱	′	″	‴	‵	‶	‷	‸	‹	›	※	‼	‽	‾	‿
204x	⁀	⁁	⁂	⁃	⁄	⁅	⁆	⁇	⁈	⁉	⁊	⁋	⁌	⁍	⁎	⁏
205x	⁐	⁑	⁒	⁓	⁔	⁕	⁖	⁗	⁘	⁙	⁚	⁛	⁜	⁝	⁞	[MM SP]
206x	[WJ]	[ƒ( )]	[×]	[,]	[+]	 	[LRI]	[RLI]	[FSI]	[PDI]	[I S S]	[A S S]	[I AFS]	[A AFS]	[NA DS]	[NO DS]
Superscripts and Subscripts
U+	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
207x	⁰	ⁱ	 	 	⁴	⁵	⁶	⁷	⁸	⁹	⁺	⁻	⁼	⁽	⁾	ⁿ
208x	₀	₁	₂	₃	₄	₅	₆	₇	₈	₉	₊	₋	₌	₍	₎
209x	ₐ	ₑ	ₒ	ₓ	ₔ	ₕ	ₖ	ₗ	ₘ	ₙ	ₚ	ₛ	ₜ
Currency Symbols
U+	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
20Ax	₠	₡	₢	₣	₤	₥	₦	₧	₨	₩	₪	₫	€	₭	₮	₯
20Bx	₰	₱	₲	₳	₴	₵	₶	₷	₸	₹	₺	₻	₼	₽	₾	₿
'''),
                  Text(r'''U+	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
215x	⅐	⅑	⅒	⅓	⅔	⅕	⅖	⅗	⅘	⅙	⅚	⅛	⅜	⅝	⅞	⅟
216x	Ⅰ	Ⅱ	Ⅲ	Ⅳ	Ⅴ	Ⅵ	Ⅶ	Ⅷ	Ⅸ	Ⅹ	Ⅺ	Ⅻ	Ⅼ	Ⅽ	Ⅾ	Ⅿ
217x	ⅰ	ⅱ	ⅲ	ⅳ	ⅴ	ⅵ	ⅶ	ⅷ	ⅸ	ⅹ	ⅺ	ⅻ	ⅼ	ⅽ	ⅾ	ⅿ
218x	ↀ	ↁ	ↂ	Ↄ	ↄ	ↅ	ↆ	ↇ	ↈ	↉	↊	↋
'''),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}
canvaskit preview

Capture

HTML preview

Capture 2

stable master

Check flutter doctor -v outputs for each channel below

flutter doctor -v
[✓] Flutter (Channel stable, 2.2.3, on Microsoft Windows [Version 10.0.22000.120], locale en-US)
    • Flutter version 2.2.3 at C:\Users\Taha\Code\flutter_stable
    • Framework revision f4abaa0735 (5 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\android-sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_SDK_ROOT = C:\Users\Taha\Code\android-sdk
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.10.4)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.10.31515.178
    • Windows 10 SDK version 10.0.19041.0

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).

[✓] VS Code (version 1.59.0)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.25.0

[✓] Connected device (4 available)
    • IN2011 (mobile)   • c9d8ee0c • android-arm64  • Android 11 (API 30)
    • Windows (desktop) • windows  • windows-x64    • Microsoft Windows [Version 10.0.22000.120]
    • Chrome (web)      • chrome   • web-javascript • Google Chrome 92.0.4515.131
    • Edge (web)        • edge     • web-javascript • Microsoft Edge 92.0.902.62

! Doctor found issues in 1 category.
[✓] Flutter (Channel master, 2.5.0-6.0.pre.21, on Microsoft Windows [Version 10.0.22000.120], locale en-US)
    • Flutter version 2.5.0-6.0.pre.21 at C:\Users\Taha\Code\flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 40e8620a27 (8 hours ago), 2021-08-06 09:14:50 +0430
    • Engine revision 431ac604da
    • Dart version 2.14.0 (build 2.14.0-383.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\android-sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_SDK_ROOT = C:\Users\Taha\Code\android-sdk
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.10.4)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.10.31515.178
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 2020.3)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.59.0)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.25.0

[✓] Connected device (5 available)
    • IN2011 (mobile)         • c9d8ee0c • android-arm64   • Android 11 (API 30)
    • Windows (desktop)       • windows  • windows-x64     • Microsoft Windows [Version 10.0.22000.120]
    • Windows (UWP) (desktop) • winuwp   • windows-uwp-x64 •
    • Chrome (web)            • chrome   • web-javascript  • Google Chrome 92.0.4515.131
    • Edge (web)              • edge     • web-javascript  • Microsoft Edge 92.0.902.62

• No issues found!

✅: No Issue ❌: Issue reproduced

@ToyWalrus
Copy link

This issue will block our GB18030 Certification in China. Can it be escalated?

@gescarguel
Copy link

gescarguel commented Dec 10, 2021

This issue is becoming increasingly critical for our product for localization purposes and will affect our China GTM strategy in February 2022 unless it is fixed by then. Is there any way we can get this issue escalated and fixed before then? Much appreciated.

@csells csells added customer: creative and removed P1 High-priority issues at the top of the work list labels Dec 16, 2021
@csells
Copy link
Contributor

csells commented Dec 16, 2021

This is blocking the customer's Chinese release

@yjbanov
Copy link
Contributor

yjbanov commented Jan 26, 2022

Update: the issue is that our fallback font set is missing some characters. To reduce the severity of this issue I'm going to try a one-off manual fix for the current font set. Long-term we should provide a fallback font bundle that we can verify for presence of all characters we want to support, which is something we want to do anyway for #85793 and #60069.

@hongfeiyang
Copy link

does this issue has anything to do with FontFeature.superscript() and FontFeature.subscript() not rendering on web as well? I tried the code in the superscript and subscript documentation and it does not show any superscript and subscript characters at all, even though in the documentation it indicates that this font does support subscripts

        Text(
          'Line from x1,y1 to x2,y2',
          style: GoogleFonts.piazzolla(
            fontFeatures: <FontFeature>[
              FontFeature.subscripts(),
            ],
          ),
        ),

@yjbanov yjbanov added P1 High-priority issues at the top of the work list and removed P2 labels Feb 9, 2022
@yjbanov
Copy link
Contributor

yjbanov commented Feb 9, 2022

The one-off fix didn't work, since it's not only our character ranges that are missing characters, but also the sliced versions of fonts hosted on fonts.google.com. However, a workaround is to use the non-sliced font. It's a big file, but it does contain all characters.

@yitz-jacob
Copy link

Can someone share which character code it is that the font is failing to render when rendering the ellipsis? I'd like to try and just add that character to our custom fonts as a stopgap so we can ship our project, thanks! (or instructions of how I might be able to figure out what the character code is?)

@gh-pap
Copy link

gh-pap commented Aug 11, 2022

Was there ever a solution to this issue? My web app is trying to display Text('\u25EF') which won't render (u25EF is being used as a substitute for a logo since the real logo is having another issue).

@samhalai
Copy link

samhalai commented Sep 8, 2022

We are having the same issue. The custom font we supplied contains the character "▲" U+25B2 that we want to render. The other characters render in the custom font just fine, it's confusing why this one character doesn't render. Does anyone have a workaround / suggestion for this?

@kevmoo
Copy link
Contributor

kevmoo commented Sep 8, 2022

@samhalai – are you using the latest Flutter (3.3)? A minimal reproduction in a stand-alone github repo makes it the easiest for us to debug!

@harryterkelsen harryterkelsen self-assigned this Sep 26, 2022
@harryterkelsen
Copy link
Contributor

The issue is now fixed.

@ToyWalrus
Copy link

The issue is now fixed.

@hterkelsen Can you give some more info about when and where it was fixed? We're still seeing this issue on the 3.3.4 release.

@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 24, 2022
@harryterkelsen
Copy link
Contributor

The issue is now fixed.

@hterkelsen Can you give some more info about when and where it was fixed? We're still seeing this issue on the 3.3.4 release.

It should be fixed as of this PR: flutter/engine#35646

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a: typography Text rendering, possibly libtxt c: regression It was better in the past than it is now e: web_canvaskit CanvasKit (a.k.a. Skia-on-WebGL) rendering backend for Web found in release: 2.0 Found to occur in 2.0 found in release: 2.1 Found to occur in 2.1 found in release: 2.2 Found to occur in 2.2 found in release: 2.5 Found to occur in 2.5 framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on P1 High-priority issues at the top of the work list platform-web Web applications specifically
Projects
Development

No branches or pull requests