我的项目中有一个问题是用Java字符串中的另一个unicode字符替换unicode字符.在搜索并尝试不同的代码后,我没有得到解决方案,我想用波斯语替换波斯语中的另一个角色,使用不同的unicode号码.我非常感谢任何帮助.
谢谢
目前我正在尝试以mime格式读取文件,其中包含一些png的二进制字符串数据.
在Windows中,读取文件为我提供了正确的二进制字符串,这意味着我只需复制字符串并将扩展名更改为png即可看到图片.
在Windows中读取文件后的示例如下:
--fh-mms-multipart-next-part-1308191573195-0-53229
Content-Type: image/png;name=app_icon.png
Content-ID: "<app_icon>"
content-location: app_icon.png
‰PNG
Run Code Online (Sandbox Code Playgroud)
等...等...
在Linux中读取文件后的示例如下:
--fh-mms-multipart-next-part-1308191573195-0-53229
Content-Type: image/png;name=app_icon.png
Content-ID: "<app_icon>"
content-location: app_icon.png
�PNG
Run Code Online (Sandbox Code Playgroud)
等...等...
我无法将Linux版本转换成图片,因为它变成了一些时髦的符号,并且有很多颠倒的"?" 和"1/2"符号.
任何人都可以告诉我发生了什么,也许可以提供解决方案?已经玩了一周以上的代码了.
我正在从.csv文件中大量上传信息,我需要将此字符替换为ascii"�"以获取正常空间"".
对于C/C++/JAVA,字符"�"对应于"\ uFFFD",它似乎称为REPLACEMENT CHARACTER.其他如C#官方文档中的空格类型如U + FEFF,205F,200B,180E,202F.
我正在尝试以这种方式替换
public string Errors="";
public void test(){
string textFromCsvCell= "";
string validCharacters="^[0-9A-Za-z().:%-/ ]+$";
textFromCsvCell="This is my text from csv file"; //ALl spaces aren't normal space " "
string cleaned = textFromCsvCell.Replace("\uFFFD", "\"")
if (Regex.IsMatch(cleaned, validCharacters ))
//All code for insert
else
Errors=cleaned;
//print Errors
}
Run Code Online (Sandbox Code Playgroud)
测试方法给我看这个文字:
"这是来自csv文件的my�texto"
我尝试了一些解决方案
尝试解决方案1:使用修剪
Regex.Replace(value.Trim(), @"[^\S\r\n]+", " ");
Run Code Online (Sandbox Code Playgroud)
尝试解决方案2:使用替换
System.Text.RegularExpressions.Regex.Replace(str,@"\s+"," ");
Run Code Online (Sandbox Code Playgroud)
尝试解决方案3:使用修剪
String.Trim(new char[]{'\uFEFF','\u200B'});
Run Code Online (Sandbox Code Playgroud)
尝试解决方案4:将[\ S\r \n]添加到validCharacters
string validCharacters="^[\S\r\n0-9A-Za-z().:%-/ ]+$";
Run Code Online (Sandbox Code Playgroud)
什么都行不通
有人有想法吗?我怎样才能更换它?我非常感谢你的帮助,谢谢
资料来源:
http://www.fileformat.info/info/unicode/char/0fffd/index.htm
可能重复:
如何在字符串中替换�
我正在从来自数据库的XML表中读取数据。在原始输出中,我遇到了这个字符“�”,它是UTF-8字符串,表示“?”。搜索“?”时,使用str_replace进行简单的搜索并删除并不能解决问题。或“�”。还有其他方法可以从字符串中删除此字符吗?
更新:
作为参考,该函数正在为我清理字符串。
function db_utf8_convert($str)
{
$convmap = array(0x80, 0x10ffff, 0, 0xffffff);
return preg_replace('/\x{EF}\x{BF}\x{BD}/u', '', mb_encode_numericentity($str, $convmap, "UTF-8"));
}
Run Code Online (Sandbox Code Playgroud) 我有一些文本进入一个显然存在某种Unicode问题的数据库.进入的文字是"5m�in area",这似乎是某种度量单位,但我无法理清上下文中的含义.搜索Google会显示许多类似的结果,因此这显然是一组常见的符号.