【发布时间】:2015-04-30 23:35:51
【问题描述】:
我正在尝试突出显示泰语文本中的一些子字符串:
high = high.Insert(myString.Index + myString.Length + "<b>" + currentLength, "</b>");
问题是,myString 字符串包含一个特殊的泰语字符(“เงินฝาก”)。给定字符串的长度应为 7,但长度被解析为 6。它仅部分突出显示文本,不包括最后一个字符。
我已经尝试对字符串进行编码(包括高字符串和myString 字符串)。但它没有用。您对如何处理此问题有任何提示吗?我也尝试过Replace 方法,但无济于事。
提前致谢!
【问题讨论】:
-
我用
เงินฝาก测试了String.Length,它返回7,而不是6。 -
嗨,谢谢调查。有可能,当我将字符串复制到编辑器中时,它会切碎字符。这是我在调试模式下的代码截图:link 注意观察变量
-
如何计算长度?我看不懂泰语,但在我的浏览器中一次选择一个字形,我会在你的字符串中计算六个字形。里面有组合字符吗?
-
我也看不懂泰语,所以我在同一页上。看起来第一个字符是一个组合字符。在另一个编辑器中打开它时,我可以看到我的光标卡在第一个字符的中间:link。我还尝试将线程设置为 InvariantCulture,但没有帮助。线程文化设置为泰语。
-
好的,所以看起来这两个字符串的编码方式不同。这是逐个字符比较的屏幕截图,显然,第三个字符是相同的:character compare
标签: c# string encoding utf-8 thai