一个字符串删除最后一个文字怎么判断是删除1个字节还是2个字节

一个字符串删除最后一个文字怎么判断是删除1个字节还是2个字节
因为中文占用2个字节,英文占用一个字节,有什么办法或者怎么可以快速确定是删除一个字节还是2个字节
我需要具体实现的过程,不仅仅是调用一个函数

python可以这样实现,取最后一个字符,编码后确定字符长度,汉字GBK编码是2字节,utf-8是3字节

a = '我爱中国'
b = 'woaizhongguo'
print(len(a[-1].encode('GBK')))
print(len(b[-1].encode('GBK')))

Python内部字符串难道不是使用Unicode编码保存每个字符的吗?
难道删除字符串的最后一个字符,不是永远去掉最后两个字节吗?
不过如果支持代理项对的话,有可能是去掉最后4个字节。

只有内部使用utf8或gbk编码的字符串,要删除最后一个字符的话,就需要从字符串开头第一个字节开始,逐字节判断当前字节是否是当前字符的最后一个字节,得到当前字符的边界,直到到达字符串末尾,再从字符串最后一个字符的开头(可能是倒数第.../6/5/4/3/2/1个字节开始),截掉对应字节。
具体截掉的办法可能是填写0作为字符串结束,也可能是修改字符串的字节长度,也可能是重新申请一段短的新内存,再将旧内存中的字符串除最后一个字符占据的字节外,复制到新内存中。

用啥语言?c++?