# UTF-8 Character output

**URL:** <https://ifnotnil.com/t/utf-8-character-output/3319>\
**Category:** Other\
**Created:** [12 June 2023 16:20 UTC](https://ifnotnil.com/t/utf-8-character-output/3319 "2023-06-12T16:20:54Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![Karen](https://ifnotnil.com/letter_avatar_proxy/v4/letter/k/7feea3/32.png) [@Karen](https://ifnotnil.com/u/Karen)\
**Post date:** [14 June 2023 15:09 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/41 "2023-06-14T15:09:16Z")

</div>

> [@bkeeney](#):
>
> A lot of talented people have left Xojo. Not just employees but users as well. The brain drain is real.

It certainly seem that technical discussion were at a much higher level in the past and have been diminishing since about the change from Real\* to Xojo. It was really valuable to me way back when.

If what Tim posted on TOF about Geof removing much of the documentation on inheritance because it’s an advanced topic most do not need to know is correct, there is no hope of things changing for the better.

-Karen

---

<div class="post-metadata">

**Author:** ![npalardy](https://ifnotnil.com/user_avatar/ifnotnil.com/npalardy/32/10_2.png) [@npalardy](https://ifnotnil.com/u/npalardy)\
**Post date:** [14 June 2023 15:21 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/42 "2023-06-14T15:21:38Z")

</div>

When you looked at the NEW documentation site for something like Label - specifically DesktopLabel

[https://documentation.xojo.com/api/user\_interface/desktop/desktoplabel.html](https://documentation.xojo.com/api/user_interface/desktop/desktoplabel.html)

the “inheritance” hierarchy used to exist at the top of the page

 ![Screen Shot 2023-06-14 at 9.18.07 AM](https://ifnotnil.com/uploads/default/original/2X/4/4de7349c99b7f514557ec6e029511a440b76c657.png)

now its buried way at the bottom - WAYYYYYY at the bottom  
And since all pages are now one giant long list of everything when I say “way at the bottom” I mean a LONG scroll down  
Open the link above and scroll and scroll and scroll

and easy to overlook - even if you KNOW what youre looking for

the breadcrumbs at the top of the page are “category” crumbs that have nothing to do with inheritance etc  
Just what section of the guide things exist in

Why I submitted  
[https://tracker.xojo.com/xojoinc/xojo/-/issues/72614](https://tracker.xojo.com/xojoinc/xojo/-/issues/72614)

---

<div class="post-metadata">

**Author:** ![HalGumbert](https://ifnotnil.com/user_avatar/ifnotnil.com/halgumbert/32/2198_2.png) [@HalGumbert](https://ifnotnil.com/u/HalGumbert)\
**Post date:** [14 June 2023 15:34 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/43 "2023-06-14T15:34:33Z")

</div>

> [@npalardy](#):
>
> DesktopLabel

This is a bit of a tangent, but…

I don’t recall if it was Web 1.0 Labels or Buttons, but one of them you could not style the text due to how Xojo built the html. So annoying. I’m not sure it was ever fixed.

---

<div class="post-metadata">

**Author:** ![Tim](https://ifnotnil.com/user_avatar/ifnotnil.com/tim/32/13_2.png) [@Tim](https://ifnotnil.com/u/Tim)\
**Post date:** [14 June 2023 15:35 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/44 "2023-06-14T15:35:32Z")

</div>

> [@Karen](#):
>
> If what Tim posted on TOF about Geof removing much of the documentation on inheritance because it’s an advanced topic most do not need to know is correct, there is no hope of things changing for the better.

When I noticed the documentation was missing inheritance information, I reached out to talk about it. He clearly didn’t understand inheritance himself, and proceeded to tell me it was an “advanced topic” and that users wouldn’t need to know about it.

Apparently he had a similar discussion with Julian.

---

<div class="post-metadata">

**Author:** ![Karen](https://ifnotnil.com/letter_avatar_proxy/v4/letter/k/7feea3/32.png) [@Karen](https://ifnotnil.com/u/Karen)\
**Post date:** [14 June 2023 15:35 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/45 "2023-06-14T15:35:43Z")

</div>

I don’t use the new docs… That long page and it’s organization make it really hard to really grasp and understand things!

-Karen

---

<div class="post-metadata">

**Author:** ![anic297](https://ifnotnil.com/user_avatar/ifnotnil.com/anic297/32/18_2.png) [@anic297](https://ifnotnil.com/u/anic297)\
**Post date:** [14 June 2023 15:43 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/46 "2023-06-14T15:43:52Z")

</div>

> [@npalardy](#):
>
> And to get the BYTES from that TEXT you have to ask that TEXT to turn itself into bytes

Are these conversions built into the language?

> [@npalardy](#):
>
> Open the link above and scroll and scroll and scroll

I have a trick for you: the ↘ key (or fn+⇟ on a laptop) 😉

But of course, the documentation is not of ease.

P.S.: the ↘ arrow looks better when composing than when actually posted, but I won’t change it.

---

<div class="post-metadata">

**Author:** ![HalGumbert](https://ifnotnil.com/user_avatar/ifnotnil.com/halgumbert/32/2198_2.png) [@HalGumbert](https://ifnotnil.com/u/HalGumbert)\
**Post date:** [14 June 2023 15:45 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/47 "2023-06-14T15:45:28Z")

</div>

> [@Tim](#):
>
> proceeded to tell me it was an “advanced topic”

No wonder Xojo is crapping the bed.

If you only care about onboarding new users and don’t give a crap about when folks become advanced, you end up with the Pros leaving. Good job, Xojo!

---

<div class="post-metadata">

**Author:** ![npalardy](https://ifnotnil.com/user_avatar/ifnotnil.com/npalardy/32/10_2.png) [@npalardy](https://ifnotnil.com/u/npalardy)\
**Post date:** [14 June 2023 15:59 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/48 "2023-06-14T15:59:08Z")

</div>

> [@anic297](#):
>
> Are these conversions built into the language?

[https://docs.xojo.com/Text](https://docs.xojo.com/Text)  
see _Converting Text to and From Bytes_

> [@anic297](#):
>
> I have a trick for you: the ↘ key (or fn+⇟ on a laptop) 😉

Oh sure NOW I know where it is  
When I first was looking for it I never dreamt that it would be put at the END of the pages  
So I _couldnt find it_  
And then the styling makes it less than obvious

The layout is so bad its harder to read than ever  
There’s almost NO distinction between header and body text in many cases  
The old docs will serve me well for a long time - even for NEW stuff 😛

---

<div class="post-metadata">

**Author:** ![npalardy](https://ifnotnil.com/user_avatar/ifnotnil.com/npalardy/32/10_2.png) [@npalardy](https://ifnotnil.com/u/npalardy)\
**Post date:** [14 June 2023 15:59 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/49 "2023-06-14T15:59:36Z")

</div>

just re-read this post

> [@Letter to Geoff](https://ifnotnil.com/t/letter-to-geoff/959/30):
>
> I’d like to chime in with some personal views as well. You know I had been Xojo’s German Developer Evangelist for about 5 years. As such, I had been promoting Xojo to new users on one hand, and supported local users for free on the other hand. Which kept me quite lucky. I think I can say I gained a lot of programming experience and insight, and from this point of view I owe a lot to Xojo. I couldn’t have survived with my old design job where income was on a straight line downwards since early t…

it explains a TON

---

<div class="post-metadata">

**Author:** ![bgrommes](https://ifnotnil.com/user_avatar/ifnotnil.com/bgrommes/32/2651_2.png) [@bgrommes](https://ifnotnil.com/u/bgrommes)\
**Post date:** [14 June 2023 16:08 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/50 "2023-06-14T16:08:29Z")

</div>

> [@Karen](#):
>
> If what Tim posted on TOF about Geof removing much of the documentation on inheritance because it’s an advanced topic most do not need to know is correct, there is no hope of things changing for the better.

Lol THAT’s an advanced topic that it’s not fundamental to understand? You’re right, we’re screwed. By that logic they should remove inheritance from the product as well.

If OTOH they’ve decided that inheritance is a “given” that is prerequisite knowledge to using it, which is obtainable elsewhere, and so they aren’t going to cover it in the docs, that’s at least a coherent, if misguided position (particularly misguided if they are focusing now on non-professional devs, who would greatly benefit from being shown how inheritance works in Xojo so they don’t have to map it from some other language example somewhere out in the ether).

---

<div class="post-metadata">

**Author:** ![Torsten\_B](https://ifnotnil.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@Torsten\_B](https://ifnotnil.com/u/Torsten_B)\
**Post date:** [14 June 2023 16:09 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/51 "2023-06-14T16:09:27Z")

</div>

By what I am reading in this thread, the deprecation of Text, instead of fixing its performance issues, could be attributed to the fact that Xojo does not have a compiler specialist.

---

<div class="post-metadata">

**Author:** ![npalardy](https://ifnotnil.com/user_avatar/ifnotnil.com/npalardy/32/10_2.png) [@npalardy](https://ifnotnil.com/u/npalardy)\
**Post date:** [14 June 2023 16:26 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/52 "2023-06-14T16:26:56Z")

</div>

I think it was more that they “hid” the location of the inheritance info on each page as I noted

But they’re [having a webinar](https://forum.xojo.com/t/webinar-understanding-object-oriented-programming-in-xojo/76164) on “HOW TO” so we can all learn this important stuff

But in an OOP language and tool HOW can the very basis of OOP be “advanced” ?

---

<div class="post-metadata">

**Author:** ![npalardy](https://ifnotnil.com/user_avatar/ifnotnil.com/npalardy/32/10_2.png) [@npalardy](https://ifnotnil.com/u/npalardy)\
**Post date:** [14 June 2023 16:34 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/53 "2023-06-14T16:34:08Z")

</div>

Lets just say that users bitched abut having two types (that did different things well)  
And the new Xojo framework had a CLEAR split between bags of bytes (using memory blocks) and TEXT. String is both - with pros & cons in each

Which upset some who tried to port their entire lives to the new set up and ran into speed issues.  
IF you used BYTES to mean “textual data” and expected to manipulate UTF encoded text as “runs of bytes” then yes TEXT was NOT going to save you a thing  
DONT MOVE to it  
There was NO requirement to do so  
The entire Xojo framework was OPTIONAL with means to convert between things IF needed

This was another victim of “OMG there’s something new I MUST move to using it immediately” where there was NO compelling reason to make such a change

Now its been deprecated an the things TEXT did well will eventually be dropped in favour of String and its set of incorrect behaviours

---

<div class="post-metadata">

**Author:** ![Torsten\_B](https://ifnotnil.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@Torsten\_B](https://ifnotnil.com/u/Torsten_B)\
**Post date:** [14 June 2023 16:40 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/54 "2023-06-14T16:40:30Z")

</div>

Pffff, Xojo has no clear product strategy, apart from trying to be attractive to the ‘new customer’.

---

<div class="post-metadata">

**Author:** ![HalGumbert](https://ifnotnil.com/user_avatar/ifnotnil.com/halgumbert/32/2198_2.png) [@HalGumbert](https://ifnotnil.com/u/HalGumbert)\
**Post date:** [14 June 2023 16:46 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/55 "2023-06-14T16:46:32Z")

</div>

> [@Torsten\_B](#):
>
> Pffff, Xojo has no clear product strategy, apart from trying to be attractive to the ‘new customer’.

THIS…

Xojo is carrying around a bucket of water, full of holes, racing to try to add more water.

---

<div class="post-metadata">

**Author:** ![Torsten\_B](https://ifnotnil.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@Torsten\_B](https://ifnotnil.com/u/Torsten_B)\
**Post date:** [14 June 2023 16:47 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/56 "2023-06-14T16:47:25Z")

</div>

There’s a hoooole in the bucket oh Genius oh Genius…

---

<div class="post-metadata">

**Author:** ![anic297](https://ifnotnil.com/user_avatar/ifnotnil.com/anic297/32/18_2.png) [@anic297](https://ifnotnil.com/u/anic297)\
**Post date:** [14 June 2023 17:21 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/57 "2023-06-14T17:21:19Z")

</div>

> [@npalardy](#):
>
> Lets just say that users bitched abut having two types (that did different things well)

While I didn’t express my thoughts about it, back then, I fairly recall iOS didn’t used strings, and sharing classes between desktop and iOS was a nightmare just by needing “characters” in the class (unless you’d use an array of integers to represent code points, but what a workaround!).

At those times, I really wanted both types to merge or become compatible with each other.  
I’m not saying the text type had to be removed, but I understand why some users disliked and didn’t understand the need for both, because, again back then, having them both broke items sharing while adding “little enhancement” (vs a break)).

---

<div class="post-metadata">

**Author:** ![npalardy](https://ifnotnil.com/user_avatar/ifnotnil.com/npalardy/32/10_2.png) [@npalardy](https://ifnotnil.com/u/npalardy)\
**Post date:** [14 June 2023 18:11 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/58 "2023-06-14T18:11:05Z")

</div>

Yes sharing code between iOS and any other target was definitely challenging  
The Xojo framework, required on iOS, could be used elsewhere  
It just never got expanded - in part because of the push back by a very vocal users who hated on it which was listened to

> [@anic297](#):
>
> (unless you’d use an array of integers to represent code points, but what a workaround!).

code points ARE integers - when you look up anything in the UTF-= 8 charts you see the “code point” (character number whatever you want to call it) which is just an indexed number  
The BYTES that represent that code point are entirely different in most cases(except in the case of the original \<128 codes which are ASCII)

> [@anic297](#):
>
> having them both broke items sharing while adding “little enhancement” (vs a break)).

If you consider “working right” a little enhancement well  
Strings have lots of odd behaviours we have all just dealt with over time  
But they do lots of things wrong - and they LET you do wrong things (adding a nil encoded string to one that has an encoding and NOT giving you any indication that this is rather nuts to do for TEXTUAL data)

Text fixed those weird things and made it obvious when you tried to do silly things  
The goal was to help YOU write better more correct code from the outset  
Something string doesn’t to

Not sure it can subsume TEXT under the hood to be text when there is an encoding and string, with all its ugliness, when there isnt one since TEXT represent TEXT completely differently than STRING

Either way its moot  
I doubt anyone there will invest the kind of time & effort it would take to do that change

---

<div class="post-metadata">

**Author:** ![Jeannot](https://ifnotnil.com/user_avatar/ifnotnil.com/jeannot/32/3787_2.png) [@Jeannot](https://ifnotnil.com/u/Jeannot)\
**Post date:** [15 June 2023 08:40 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/59 "2023-06-15T08:40:44Z")

</div>

they do =\> LOW CODE?, ZERO CODE?, NO CODE?, BAD CODE? … why mentioning inheritance? 🙂

Xojo 2031R4: the only product compiling no code for all platforms.

---

<div class="post-metadata">

**Author:** ![anic297](https://ifnotnil.com/user_avatar/ifnotnil.com/anic297/32/18_2.png) [@anic297](https://ifnotnil.com/u/anic297)\
**Post date:** [15 June 2023 11:09 UTC](https://ifnotnil.com/t/utf-8-character-output/3319/60 "2023-06-15T11:09:24Z")

</div>

> [@npalardy](#):
>
> code points ARE integers

Yes, I know. But when you have an array of integers, they can represent other things than code points, hence my statement.

> [@npalardy](#):
>
> Either way its moot

Agreed.

[Previous page](https://ifnotnil.com/t/utf-8-character-output/3319.md?page=2)

[Next page](https://ifnotnil.com/t/utf-8-character-output/3319.md?page=4)
