C 中如何按位元組數擷取字串?

2022-03-15 21:34:02 字數 1148 閱讀 6353

今天要擷取乙個文件,發現c#中substring預設是將漢字當乙個位元組來擷取的,但是我需要把漢字按照2個位元組來算。

比如:

str="雪潔hello"

我想要前5個位元組的字元,也就是"雪潔h"。

如何處理?

c#中substring預設是將漢字當乙個位元組來擷取的,那麼如何按位元組數擷取字串?

答案:

using

system;

using

system.collections.generic;

using

system.web;

using

system.web.ui;

using

system.web.ui.webcontrols;

using

system.text;

public

partial

class

_default : system.web.ui.page

private

static encoding _encoding = system.text.encoding.getencoding("

gb2312");

//第一種方法

private

string substringbyte(string text, int startindex, int

length)

//第二種方法

private

string cutsubstring(string s, int

length)

else}}

//如果i為奇數時,處理成偶數

if (i % 2 == 1

)

return system.text.encoding.unicode.getstring(bytes, 0

, i);}}

例項效果:

不用多說相信大家能看出區別,和實現方法,如有其他需求可自行新增

順便感謝kofip

分享的第三種方法,效果圖上直接展示出其效果,至於效率問題未測試,有興趣的朋友可以測試下。

按位元組數擷取字串

1.字串設定長度,長度限制 nsstring stringwithhtml nsstring str length cgfloat length 如果有寬度限制的話,建議用 if str.length length 缺點是字母或數字或中文與數字字母混合時計算有誤,還會執行下面方法,但比較保險 獲取字...

根據位元組數擷取字串

擷取字串相信大家基本都用過,但是一般都是用string.length判斷字串的長度後進行擷取。這樣如果一組字串裡既有英文 數字又有中文,那麼擷取出來的字串還是會長短不一,因為每個英文或數字是佔乙個位元組而每個漢字佔兩個位元組。這時,我們可以通過位元組數來擷取,寫了個方法 擷取指定長度的字串 擷取前的...

根據位元組數擷取字串

問題描述 編寫乙個擷取字串的函式,輸入為乙個字串和位元組數,輸出為按位元組擷取的字串。但是要保證漢字不被截半個,例如 人abc 4,應該截為 人ab 輸入 人abc們 6,應該截為 人abc 而不是截為 人ab 們的半個 package com.wyl 擷取字串 author wyl public ...