所以,我正在研究一个普通的C(ANSI 9899:1999)项目,我正在试图弄清楚从哪里开始:Unicode,UTF-8和所有爵士乐.
具体来说,它是一个语言解释器项目,我有两个主要的地方,我需要处理Unicode:读取源文件(表面上支持Unicode标识符的语言等),以及'字符串'对象.
我熟悉所有关于Unicode,UTF-7/8/16/32和UCS-2/4的明显基础知识,等等......我主要是寻找有用的,特定于C的(也就是说,请没有C++或C#,这就是之前在SO上记录的所有资源)关于实现Unicode友好的东西的"后续步骤"的资源......在C.
任何链接,联机帮助页,维基百科文章,示例代码都非常受欢迎.我还将尝试在原始问题中维护此类资源的列表,以供稍后发生的任何人使用.
man 3 iconv(以及iconv_open和iconvctl)libbasekit,似乎包括轻型Unicode处理工具我需要将文件中每行的第一个字母更改为大写,例如
the bear ate the fish.
the river was too fast.
Run Code Online (Sandbox Code Playgroud)
会成为:
The bear ate the fish.
The river was too fast.
Run Code Online (Sandbox Code Playgroud)
如何将文件中每行的第一个字母更改为大写?
我正在尝试制作一个替代阿拉伯语文本的代码,以支持非阿拉伯语支持的程序
,因为我需要在替换后反转文本,但它显示一些垃圾内容而不是想要的结果
这是代码:
<?php
$string = "???? ??";
echo "$string <br>";
$Reversed = strrev($string);
echo "<br><b>After Reverse</b><br><br>";
echo "<br> $Reversed";
?>
Run Code Online (Sandbox Code Playgroud)
结果:
???? ??
After Reverse
??? ????
Run Code Online (Sandbox Code Playgroud)
我需要它是它的方式,但逆转?不是垃圾!!
我正在为移动应用程序构建API,我似乎在计算包含表情符号的字符串的长度时遇到问题.我的代码:
$str = "?? @mention";
printf("strlen: %d" . PHP_EOL, strlen($str));
printf("mb_strlen UTF-8: %d" . PHP_EOL, mb_strlen($str, "UTF-8"));
printf("mb_strlen UTF-16: %d" . PHP_EOL, mb_strlen($str, "UTF-16"));
printf("iconv UTF-16: %d" . PHP_EOL, iconv_strlen(iconv("UTF-8", "UTF-16", $str)));
printf("iconv UTF-16: %d" . PHP_EOL, iconv_strlen(iconv("ISO-8859-1", "UTF-16", $str)));
Run Code Online (Sandbox Code Playgroud)
这个的反应是:
strlen: 27
mb_strlen UTF-8: 14
mb_strlen UTF-16: 13
iconv UTF-16: 14
iconv UTF-16: 27
Run Code Online (Sandbox Code Playgroud)
但是我应该得到17分.我们尝试在iOS,Android和Windows手机上使用字符串长度,它到处都是17.iOS(swift)片段:
var str = "?? @mention"
(str as NSString).length // 17
count(str) // 13
count(str.utf16) // 17
count(str.utf8) // 27
Run Code Online (Sandbox Code Playgroud)
由于库,我们需要使用NSString.我需要这个来获得"@mention"的起始位置和结束位置.如果字符串仅包含文本或仅包含表情符号,则它可以正常工作,因此混合内容可能存在一些问题.
我究竟做错了什么?还有什么其他信息可以让你们让我们朝着正确的方向前进?
谢谢!
我有一个文件,其字符串手写为\ u00C3.我想创建一个由java中的unicode表示的unicode字符.我试过但找不到怎么样.救命.
编辑:当我读取文本文件时,字符串将包含"\ u00C3"而不是unicode但是包含ASCII字符'\''u''0''0''3'.我想从该ASCII字符串形成unicode字符.
我正在编写DLL并希望能够在MSVC++ 2010中的unicode和multibyte设置之间切换.例如,我使用_T("string")and LPCTSTR而WIN32_FIND_DATA不是-W和-A版本等.
现在,我想有性病::字符串之间变化std::string,并std::wstring根据统一设置.那可能吗?否则,这可能会变得非常复杂.
尝试创建包含希伯来字母和数字的字符串时会出现奇怪的行为.数字将始终显示在字母左侧.例如:
string A = "\u05E9"; //A Hebrew letter
string B = "23";
string AB = A + B;
textBlock1.Text = AB;
//Ouput bug - B is left to A.
Run Code Online (Sandbox Code Playgroud)
只有在使用希伯来字母和数字时才会出现此错误.从等式中省略其中一个时,错误不会发生:
string A = "\u20AA"; //Some random Unicode.
string B = "23";
string AB = A + B;
textBlock1.Text = AB;
//Output OK.
string A = "\u05E9"; //A Hebrew letter.
string B = "HELLO";
string AB = A + B;
textBlock1.Text = AB;
//Output OK.
Run Code Online (Sandbox Code Playgroud)
我尝试使用FlowDirection属性,但它没有帮助.
在第一个代码例子中正确显示文本的解决方法将受到欢迎.
我正在编写一个golang程序,它接受一个字符串列表,并按字符串的第一个字符将它们分类到存储桶列表中.但是,我希望它能够使用最类似的非重音字符对重音字符进行分组.所以,如果我有一个字母A的桶,那么我想要包含以Á开头的字符串.
Go有没有内置的东西来确定这个,或者我最好选择一个包含所有字符及其重音变体的大型switch语句?
如何只使用库存Lua 5.3,使os.remove和os.rename使用包含unicode字符的文件名?
filename = "C:\\????.txt"
os.rename(filename, filename .. "1")
Run Code Online (Sandbox Code Playgroud)
这没有任何作用.
我也尝试了这个但是仍然无效:
filename = "C:\\????.txt"
t = {}
for p, c in utf8.codes(filename) do
t[#t+1] = c
end
filename = "\\" .. table.concat(t, "\\")
os.rename(filename, filename .. "1")
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?非常感谢您的帮助!:)
我们可以使用什么符号来符合 ??download 的想法?是否有唯一的 Unicode 符号?